source: NonGTP/Boost/boost/mpl/set/aux_/numbered.hpp @ 857

Revision 857, 1.2 KB checked in by igarcia, 19 years ago (diff)
Line 
1
2// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
3
4#if defined(BOOST_PP_IS_ITERATING)
5
6// Copyright Aleksey Gurtovoy 2000-2004
7//
8// Distributed under the Boost Software License, Version 1.0.
9// (See accompanying file LICENSE_1_0.txt or copy at
10// http://www.boost.org/LICENSE_1_0.txt)
11//
12// See http://www.boost.org/libs/mpl for documentation.
13
14// $Source: /cvsroot/boost/boost/boost/mpl/set/aux_/numbered.hpp,v $
15// $Date: 2005/06/18 22:03:09 $
16// $Revision: 1.4 $
17
18#include <boost/preprocessor/enum_params.hpp>
19#include <boost/preprocessor/dec.hpp>
20#include <boost/preprocessor/cat.hpp>
21
22#define i_ BOOST_PP_FRAME_ITERATION(1)
23
24#   define AUX778076_SET_TAIL(set, i_, T) \
25    typename BOOST_PP_CAT(set,i_)< \
26          BOOST_PP_ENUM_PARAMS(i_, T) \
27        >::item_                           \
28    /**/
29
30#if i_ > 0
31template<
32      BOOST_PP_ENUM_PARAMS(i_, typename T)
33    >
34struct BOOST_PP_CAT(set,i_)
35    : s_item<
36          BOOST_PP_CAT(T,BOOST_PP_DEC(i_))
37        , AUX778076_SET_TAIL(set,BOOST_PP_DEC(i_),T)
38        >
39{
40    typedef BOOST_PP_CAT(set,i_) type;
41};
42#endif
43
44#   undef AUX778076_SET_TAIL
45
46#undef i_
47
48#endif // BOOST_PP_IS_ITERATING
Note: See TracBrowser for help on using the repository browser.