Files
boost_mpl/include/boost/mpl/map/aux_/numbered.hpp
T
2004-09-02 15:41:37 +00:00

49 lines
1.1 KiB
C++

// no include guards, the header is intended for multiple inclusion!
#if defined(BOOST_PP_IS_ITERATING)
// Copyright Aleksey Gurtovoy 2000-2004
//
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
//
// See http://www.boost.org/libs/mpl for documentation.
// $Source$
// $Date$
// $Revision$
#include <boost/preprocessor/enum_params.hpp>
#include <boost/preprocessor/dec.hpp>
#include <boost/preprocessor/cat.hpp>
#define i_ BOOST_PP_FRAME_ITERATION(1)
# define AUX778076_MAP_TAIL(map, i_, P) \
BOOST_PP_CAT(map,i_)< \
BOOST_PP_ENUM_PARAMS(i_, P) \
> \
/**/
#if i_ > 0
template<
BOOST_PP_ENUM_PARAMS(i_, typename P)
>
struct BOOST_PP_CAT(map,i_)
: m_item<
typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::first
, typename BOOST_PP_CAT(P,BOOST_PP_DEC(i_))::second
, AUX778076_MAP_TAIL(map,BOOST_PP_DEC(i_),P)
>
{
};
#endif
# undef AUX778076_MAP_TAIL
#undef i_
#endif // BOOST_PP_IS_ITERATING