]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mpl/test/push_front.cpp
2 // Copyright Aleksey Gurtovoy 2000-2004
3 // Copyright Steven Watanabe 2009
5 // Distributed under the Boost Software License, Version 1.0.
6 // (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
9 // See http://www.boost.org/libs/mpl for documentation.
15 #include <boost/mpl/push_front.hpp>
16 #include <boost/mpl/push_back.hpp>
17 #include <boost/mpl/list/list10.hpp>
18 #include <boost/mpl/size.hpp>
19 #include <boost/mpl/front.hpp>
21 #include <boost/mpl/aux_/test.hpp>
23 struct no_push_front_tag
{};
27 typedef no_push_front_tag tag
;
32 typedef push_front
<list0
<>,long>::type res1
;
33 typedef push_front
<list1
<long>,int>::type res2
;
34 typedef push_front
<list2
<int,long>,char>::type res3
;
36 MPL_ASSERT_RELATION( size
<res1
>::value
, ==, 1 );
37 MPL_ASSERT_RELATION( size
<res2
>::value
, ==, 2 );
38 MPL_ASSERT_RELATION( size
<res3
>::value
, ==, 3 );
40 MPL_ASSERT(( is_same
< front
<res1
>::type
, long > ));
41 MPL_ASSERT(( is_same
< front
<res2
>::type
, int > ));
42 MPL_ASSERT(( is_same
< front
<res3
>::type
, char > ));
44 MPL_ASSERT(( has_push_front
< list0
<> > ));
45 MPL_ASSERT(( has_push_front
< list1
<long> > ));
47 MPL_ASSERT_NOT(( has_push_back
< list0
<> > ));
49 MPL_ASSERT_NOT(( has_push_front
< no_push_front
> ));