]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/fusion/test/sequence/boost_array.cpp
1 /*=============================================================================
2 Copyright (c) 2001-2011 Joel de Guzman
3 Copyright (c) 2005-2006 Dan Marsden
4 Copyright (c) 2010 Christopher Schmidt
6 Distributed under the Boost Software License, Version 1.0. (See accompanying
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 ==============================================================================*/
10 #include <boost/detail/lightweight_test.hpp>
12 #include <boost/fusion/adapted/boost_array.hpp>
13 #include <boost/array.hpp>
15 #include <boost/fusion/sequence/intrinsic.hpp>
16 #include <boost/fusion/support/is_sequence.hpp>
17 #include <boost/fusion/support/is_view.hpp>
18 #include <boost/fusion/iterator.hpp>
20 #include <boost/mpl/assert.hpp>
24 using namespace boost::fusion
;
25 typedef boost::array
<int,3> array_type
;
27 BOOST_MPL_ASSERT((traits::is_sequence
<array_type
>));
28 BOOST_MPL_ASSERT_NOT((traits::is_view
<array_type
>));
29 BOOST_STATIC_ASSERT(traits::is_sequence
<array_type
>::value
);
30 BOOST_STATIC_ASSERT(!traits::is_view
<array_type
>::value
);
32 array_type arr
= {{1,2,3}};
34 BOOST_TEST(*begin(arr
) == 1);
35 BOOST_TEST(*next(begin(arr
)) == 2);
36 BOOST_TEST(*advance_c
<2>(begin(arr
)) == 3);
37 BOOST_TEST(prior(next(begin(arr
))) == begin(arr
));
38 BOOST_TEST(*prior(end(arr
)) == 3);
39 BOOST_TEST(at_c
<2>(arr
) == 3);
40 BOOST_TEST(size(arr
) == 3);
41 BOOST_TEST(distance(begin(arr
), end(arr
)) == 3);
43 return boost::report_errors();