]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/fusion/test/compile_time/vector_intrinsic.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / fusion / test / compile_time / vector_intrinsic.cpp
1 /*=============================================================================
2 Copyright (c) 2008 Dan Marsden
3
4 Use modification and distribution are subject to the Boost Software
5 License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
6 http://www.boost.org/LICENSE_1_0.txt).
7 ==============================================================================*/
8
9 #include <boost/fusion/include/vector.hpp>
10 #include <boost/fusion/include/intrinsic.hpp>
11
12 namespace fusion = boost::fusion;
13
14 namespace
15 {
16 template<int n, int batch>
17 struct distinct
18 {};
19
20 template<int batch>
21 void test()
22 {
23 typedef fusion::vector<
24 distinct<0, batch>, distinct<1, batch>, distinct<2, batch>, distinct<3, batch>, distinct<4, batch>,
25 distinct<5, batch>, distinct<6, batch>, distinct<7, batch>, distinct<8, batch>, distinct<9, batch> > v_type;
26
27 v_type v;
28
29 fusion::at_c<0>(v);
30 fusion::at_c<1>(v);
31 fusion::at_c<2>(v);
32 fusion::at_c<3>(v);
33 fusion::at_c<4>(v);
34
35 fusion::at_c<5>(v);
36 fusion::at_c<6>(v);
37 fusion::at_c<7>(v);
38 fusion::at_c<8>(v);
39 fusion::at_c<9>(v);
40
41 typedef typename boost::fusion::result_of::value_at_c<v_type, 0>::type va0;
42 typedef typename boost::fusion::result_of::value_at_c<v_type, 1>::type va1;
43 typedef typename boost::fusion::result_of::value_at_c<v_type, 2>::type va2;
44 typedef typename boost::fusion::result_of::value_at_c<v_type, 3>::type va3;
45 typedef typename boost::fusion::result_of::value_at_c<v_type, 4>::type va4;
46
47 typedef typename boost::fusion::result_of::value_at_c<v_type, 5>::type va5;
48 typedef typename boost::fusion::result_of::value_at_c<v_type, 6>::type va6;
49 typedef typename boost::fusion::result_of::value_at_c<v_type, 7>::type va7;
50 typedef typename boost::fusion::result_of::value_at_c<v_type, 8>::type va8;
51 typedef typename boost::fusion::result_of::value_at_c<v_type, 9>::type va9;
52
53 fusion::begin(v);
54 fusion::end(v);
55 fusion::size(v);
56 }
57 }
58
59 #include "./driver.hpp"