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

Private GIT Repository
8416beadeaf1a1c380a17937eb525d5d944b3c87
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / set / aux_ / numbered_c.hpp
1 \r
2 // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION\r
3 \r
4 #if defined(BOOST_PP_IS_ITERATING)\r
5 \r
6 // Copyright Aleksey Gurtovoy 2000-2004\r
7 //\r
8 // Distributed under the Boost Software License, Version 1.0. \r
9 // (See accompanying file LICENSE_1_0.txt or copy at \r
10 // http://www.boost.org/LICENSE_1_0.txt)\r
11 //\r
12 // See http://www.boost.org/libs/mpl for documentation.\r
13 \r
14 // $Id: numbered_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $\r
15 // $Date: 2008-10-11 02:19:02 -0400 (Sat, 11 Oct 2008) $\r
16 // $Revision: 49267 $\r
17 \r
18 #include <boost/preprocessor/repetition/enum_params.hpp>\r
19 #include <boost/preprocessor/repetition/enum_trailing_params.hpp>\r
20 #include <boost/preprocessor/dec.hpp>\r
21 #include <boost/preprocessor/cat.hpp>\r
22 \r
23 #define i_ BOOST_PP_FRAME_ITERATION(1)\r
24 \r
25 #   define AUX778076_SET_C_TAIL(set, i_, T, C) \\r
26     BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c)< \\r
27           T BOOST_PP_ENUM_TRAILING_PARAMS(i_, C) \\r
28         > \\r
29     /**/\r
30 \r
31 template<\r
32       typename T\r
33     , BOOST_PP_ENUM_PARAMS(i_, T C)\r
34     >\r
35 struct BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c)\r
36     : s_item<\r
37           integral_c<T,BOOST_PP_CAT(C,BOOST_PP_DEC(i_))>\r
38         , AUX778076_SET_C_TAIL(set,BOOST_PP_DEC(i_), T, C)\r
39         >\r
40 {\r
41     typedef BOOST_PP_CAT(BOOST_PP_CAT(set,i_),_c) type;\r
42 };\r
43 \r
44 #   undef AUX778076_SET_C_TAIL\r
45 \r
46 #undef i_\r
47 \r
48 #endif // BOOST_PP_IS_ITERATING\r