]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/mpl/list/aux_/numbered.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
397b19c5e6230ba16b0d3484987d5bb79fd296cd
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / list / aux_ / numbered.hpp
1 \r
2 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION\r
3 \r
4 // Copyright Peter Dimov 2000-2002\r
5 // Copyright Aleksey Gurtovoy 2000-2004\r
6 //\r
7 // Distributed under the Boost Software License, Version 1.0. \r
8 // (See accompanying file LICENSE_1_0.txt or copy at \r
9 // http://www.boost.org/LICENSE_1_0.txt)\r
10 //\r
11 // See http://www.boost.org/libs/mpl for documentation.\r
12 \r
13 // $Id: numbered.hpp 49267 2008-10-11 06:19:02Z agurtovoy $\r
14 // $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $\r
15 // $Revision: 49267 $\r
16 \r
17 #if defined(BOOST_PP_IS_ITERATING)\r
18 \r
19 #include <boost/preprocessor/enum_params.hpp>\r
20 #include <boost/preprocessor/enum_shifted_params.hpp>\r
21 #include <boost/preprocessor/dec.hpp>\r
22 #include <boost/preprocessor/cat.hpp>\r
23 \r
24 #define i BOOST_PP_FRAME_ITERATION(1)\r
25 \r
26 #if i == 1\r
27 \r
28 template<\r
29       BOOST_PP_ENUM_PARAMS(i, typename T)\r
30     >\r
31 struct list1\r
32     : l_item<\r
33           long_<1>\r
34         , T0\r
35         , l_end\r
36         >\r
37 {\r
38     typedef list1 type;\r
39 };\r
40 \r
41 #else\r
42 \r
43 #   define MPL_AUX_LIST_TAIL(list, i, T) \\r
44     BOOST_PP_CAT(list,BOOST_PP_DEC(i))< \\r
45       BOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \\r
46     > \\r
47     /**/\r
48     \r
49 template<\r
50       BOOST_PP_ENUM_PARAMS(i, typename T)\r
51     >\r
52 struct BOOST_PP_CAT(list,i)\r
53     : l_item<\r
54           long_<i>\r
55         , T0\r
56         , MPL_AUX_LIST_TAIL(list,i,T)\r
57         >\r
58 {\r
59     typedef BOOST_PP_CAT(list,i) type;\r
60 };\r
61 \r
62 #   undef MPL_AUX_LIST_TAIL\r
63 \r
64 #endif // i == 1\r
65 \r
66 #undef i\r
67 \r
68 #endif // BOOST_PP_IS_ITERATING\r