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

Private GIT Repository
49db966aab62fd03361559da041d787c3b8b105b
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / set / aux_ / numbered.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.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/enum_params.hpp>\r
19 #include <boost/preprocessor/dec.hpp>\r
20 #include <boost/preprocessor/cat.hpp>\r
21 \r
22 #define i_ BOOST_PP_FRAME_ITERATION(1)\r
23 \r
24 #   define AUX778076_SET_TAIL(set, i_, T) \\r
25     typename BOOST_PP_CAT(set,i_)< \\r
26           BOOST_PP_ENUM_PARAMS(i_, T) \\r
27         >::item_                           \\r
28     /**/\r
29 \r
30 #if i_ > 0\r
31 template<\r
32       BOOST_PP_ENUM_PARAMS(i_, typename T)\r
33     >\r
34 struct BOOST_PP_CAT(set,i_)\r
35     : s_item<\r
36           BOOST_PP_CAT(T,BOOST_PP_DEC(i_))\r
37         , AUX778076_SET_TAIL(set,BOOST_PP_DEC(i_),T)\r
38         >\r
39 {\r
40     typedef BOOST_PP_CAT(set,i_) type;\r
41 };\r
42 #endif\r
43 \r
44 #   undef AUX778076_SET_TAIL\r
45 \r
46 #undef i_\r
47 \r
48 #endif // BOOST_PP_IS_ITERATING\r