]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/mpl/include/boost/mpl/list/aux_/numbered_c.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / mpl / include / boost / mpl / list / aux_ / numbered_c.hpp
CommitLineData
7c673cae
FG
1
2// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
3
4// Copyright Aleksey Gurtovoy 2000-2004
5//
6// Distributed under the Boost Software License, Version 1.0.
7// (See accompanying file LICENSE_1_0.txt or copy at
8// http://www.boost.org/LICENSE_1_0.txt)
9//
10// See http://www.boost.org/libs/mpl for documentation.
11
12// $Id$
13// $Date$
14// $Revision$
15
16#if defined(BOOST_PP_IS_ITERATING)
17
18#include <boost/preprocessor/enum_params.hpp>
19#include <boost/preprocessor/enum_shifted_params.hpp>
20#include <boost/preprocessor/dec.hpp>
21#include <boost/preprocessor/cat.hpp>
22
23#define i BOOST_PP_FRAME_ITERATION(1)
24
25#if i == 1
26
27template<
28 typename T
29 , BOOST_PP_ENUM_PARAMS(i, T C)
30 >
31struct list1_c
32 : l_item<
33 long_<1>
34 , integral_c<T,C0>
35 , l_end
36 >
37{
38 typedef list1_c type;
39 typedef T value_type;
40};
41
42#else
43
44# define MPL_AUX_LIST_C_TAIL(list, i, C) \
45 BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_PP_DEC(i)),_c)<T, \
46 BOOST_PP_ENUM_SHIFTED_PARAMS(i, C) \
47 > \
48 /**/
49
50template<
51 typename T
52 , BOOST_PP_ENUM_PARAMS(i, T C)
53 >
54struct BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c)
55 : l_item<
56 long_<i>
57 , integral_c<T,C0>
58 , MPL_AUX_LIST_C_TAIL(list,i,C)
59 >
60{
61 typedef BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) type;
62 typedef T value_type;
63};
64
65# undef MPL_AUX_LIST_C_TAIL
66
67#endif // i == 1
68
69#undef i
70
71#endif // BOOST_PP_IS_ITERATING