//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // UNSUPPORTED: c++98, c++03, c++11 // dynarray.data // T* data() noexcept; // const T* data() const noexcept; #include #include #include #include #include using std::experimental::dynarray; template void dyn_test_const(const dynarray &dyn, bool CheckEquals = true) { const T *data = dyn.data (); assert ( data != NULL ); if (CheckEquals) { assert ( std::equal ( dyn.begin(), dyn.end(), data )); } } template void dyn_test( dynarray &dyn, bool CheckEquals = true) { T *data = dyn.data (); assert ( data != NULL ); if (CheckEquals) { assert ( std::equal ( dyn.begin(), dyn.end(), data )); } } template void test(const T &val, bool DefaultValueIsIndeterminate = false) { typedef dynarray dynA; const bool CheckDefaultValues = !DefaultValueIsIndeterminate; dynA d1(4); dyn_test(d1, CheckDefaultValues); dyn_test_const(d1, CheckDefaultValues); dynA d2 (7, val); dyn_test ( d2 ); dyn_test_const ( d2 ); } int main() { test(14, /* DefaultValueIsIndeterminate */ true); test(14.0, true); test> ( std::complex ( 14, 0 )); test ( "fourteen" ); }