File indexing completed on 2025-01-18 09:41:40
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #if defined(BOOST_PP_IS_ITERATING)
0018
0019 #include <boost/preprocessor/enum_params.hpp>
0020 #include <boost/preprocessor/enum_shifted_params.hpp>
0021 #include <boost/preprocessor/dec.hpp>
0022 #include <boost/preprocessor/cat.hpp>
0023
0024 #define i BOOST_PP_FRAME_ITERATION(1)
0025
0026 #if i == 1
0027
0028 template<
0029 BOOST_PP_ENUM_PARAMS(i, typename T)
0030 >
0031 struct list1
0032 : l_item<
0033 long_<1>
0034 , T0
0035 , l_end
0036 >
0037 {
0038 typedef list1 type;
0039 };
0040
0041 #else
0042
0043 # define MPL_AUX_LIST_TAIL(list, i, T) \
0044 BOOST_PP_CAT(list,BOOST_PP_DEC(i))< \
0045 BOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \
0046 > \
0047
0048
0049 template<
0050 BOOST_PP_ENUM_PARAMS(i, typename T)
0051 >
0052 struct BOOST_PP_CAT(list,i)
0053 : l_item<
0054 long_<i>
0055 , T0
0056 , MPL_AUX_LIST_TAIL(list,i,T)
0057 >
0058 {
0059 typedef BOOST_PP_CAT(list,i) type;
0060 };
0061
0062 # undef MPL_AUX_LIST_TAIL
0063
0064 #endif
0065
0066 #undef i
0067
0068 #endif