diff options
Diffstat (limited to 'libcxx/test/std/containers/sequences/array/indexing.pass.cpp')
-rw-r--r-- | libcxx/test/std/containers/sequences/array/indexing.pass.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libcxx/test/std/containers/sequences/array/indexing.pass.cpp b/libcxx/test/std/containers/sequences/array/indexing.pass.cpp index bf55711a141..7bc3360a6fd 100644 --- a/libcxx/test/std/containers/sequences/array/indexing.pass.cpp +++ b/libcxx/test/std/containers/sequences/array/indexing.pass.cpp @@ -12,6 +12,7 @@ // const_reference operator[] (size_type); // constexpr in C++14 // reference at (size_type) // const_reference at (size_type); // constexpr in C++14 +// Libc++ marks these as noexcept #include <array> #include <cassert> @@ -36,6 +37,8 @@ int main(int, char**) typedef double T; typedef std::array<T, 3> C; C c = {1, 2, 3.5}; + LIBCPP_ASSERT_NOEXCEPT(c[0]); + ASSERT_SAME_TYPE(C::reference, decltype(c[0])); C::reference r1 = c[0]; assert(r1 == 1); r1 = 5.5; @@ -50,6 +53,8 @@ int main(int, char**) typedef double T; typedef std::array<T, 3> C; const C c = {1, 2, 3.5}; + LIBCPP_ASSERT_NOEXCEPT(c[0]); + ASSERT_SAME_TYPE(C::const_reference, decltype(c[0])); C::const_reference r1 = c[0]; assert(r1 == 1); C::const_reference r2 = c[2]; @@ -59,6 +64,8 @@ int main(int, char**) typedef double T; typedef std::array<T, 0> C; C c = {}; + LIBCPP_ASSERT_NOEXCEPT(c[0]); + ASSERT_SAME_TYPE(C::reference, decltype(c[0])); C const& cc = c; static_assert((std::is_same<decltype(c[0]), T &>::value), ""); static_assert((std::is_same<decltype(cc[0]), const T &>::value), ""); @@ -73,6 +80,8 @@ int main(int, char**) typedef double T; typedef std::array<const T, 0> C; C c = {{}}; + LIBCPP_ASSERT_NOEXCEPT(c[0]); + ASSERT_SAME_TYPE(C::reference, decltype(c[0])); C const& cc = c; static_assert((std::is_same<decltype(c[0]), const T &>::value), ""); static_assert((std::is_same<decltype(cc[0]), const T &>::value), ""); @@ -88,6 +97,8 @@ int main(int, char**) typedef double T; typedef std::array<T, 3> C; constexpr C c = {1, 2, 3.5}; + LIBCPP_ASSERT_NOEXCEPT(c[0]); + ASSERT_SAME_TYPE(C::const_reference, decltype(c[0])); constexpr T t1 = c[0]; static_assert (t1 == 1, ""); |