1 /*============================================================================= 2 Copyright (c) 2010 Christopher Schmidt 3 4 Distributed under the Boost Software License, Version 1.0. (See accompanying 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 ==============================================================================*/ 7 8 #include <boost/detail/lightweight_test.hpp> 9 10 #include <boost/fusion/adapted/array.hpp> 11 #include <boost/fusion/sequence/intrinsic.hpp> 12 #include <boost/fusion/iterator.hpp> 13 #include <boost/fusion/support/is_sequence.hpp> 14 #include <boost/fusion/support/is_view.hpp> 15 16 #include <boost/mpl/assert.hpp> 17 main()18int main() 19 { 20 using namespace boost::fusion; 21 typedef int array_type[3]; 22 23 BOOST_MPL_ASSERT((traits::is_sequence<array_type>)); 24 BOOST_MPL_ASSERT_NOT((traits::is_view<array_type>)); 25 BOOST_STATIC_ASSERT(traits::is_sequence<array_type>::value); 26 BOOST_STATIC_ASSERT(!traits::is_view<array_type>::value); 27 28 array_type arr = {1,2,3}; 29 30 BOOST_TEST(*begin(arr) == 1); 31 BOOST_TEST(*next(begin(arr)) == 2); 32 BOOST_TEST(*advance_c<2>(begin(arr)) == 3); 33 BOOST_TEST(prior(next(begin(arr))) == begin(arr)); 34 BOOST_TEST(*prior(end(arr)) == 3); 35 BOOST_TEST(at_c<2>(arr) == 3); 36 BOOST_TEST(size(arr) == 3); 37 BOOST_TEST(distance(begin(arr), end(arr)) == 3); 38 39 return boost::report_errors(); 40 } 41 42