]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/mpl/test/push_front.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / mpl / test / push_front.cpp
1
2 // Copyright Aleksey Gurtovoy 2000-2004
3 // Copyright Steven Watanabe 2009
4 //
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)
8 //
9 // See http://www.boost.org/libs/mpl for documentation.
10
11 // $Id$
12 // $Date$
13 // $Revision$
14
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>
20
21 #include <boost/mpl/aux_/test.hpp>
22
23 struct no_push_front_tag {};
24
25 struct no_push_front
26 {
27 typedef no_push_front_tag tag;
28 };
29
30 MPL_TEST_CASE()
31 {
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;
35
36 MPL_ASSERT_RELATION( size<res1>::value, ==, 1 );
37 MPL_ASSERT_RELATION( size<res2>::value, ==, 2 );
38 MPL_ASSERT_RELATION( size<res3>::value, ==, 3 );
39
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 > ));
43
44 MPL_ASSERT(( has_push_front< list0<> > ));
45 MPL_ASSERT(( has_push_front< list1<long> > ));
46
47 MPL_ASSERT_NOT(( has_push_back< list0<> > ));
48
49 MPL_ASSERT_NOT(( has_push_front< no_push_front > ));
50 }