// Copyright 2025 Peter Dimov // Distributed under the Boost Software License, Version 1.0. // https://www.boost.org/LICENSE_1_0.txt #include #include #include #include template void test1() { { boost::array a = {{}}; BOOST_TEST_EQ( a.size(), N ); BOOST_TEST_EQ( a.empty(), N == 0 ); BOOST_TEST_EQ( a.max_size(), N ); (void)a; // msvc-12.0 } { boost::array const a = {{}}; BOOST_TEST_EQ( a.size(), N ); BOOST_TEST_EQ( a.empty(), N == 0 ); BOOST_TEST_EQ( a.max_size(), N ); (void)a; // msvc-12.0 } } template void test2() { typedef boost::array A; BOOST_TEST_EQ( A().size(), N ); BOOST_TEST_EQ( A().empty(), N == 0 ); BOOST_TEST_EQ( A().max_size(), N ); } // the functions are static, which deviates from the standard template void test3() { typedef boost::array A; BOOST_TEST_EQ( A::size(), N ); BOOST_TEST_EQ( A::empty(), N == 0 ); BOOST_TEST_EQ( A::max_size(), N ); BOOST_TEST_EQ( A::static_size, N ); } int main() { test1(); test1(); test1(); test1(); test1(); test1(); test2(); test2(); test2(); test3(); test3(); test3(); test3(); test3(); test3(); return boost::report_errors(); }