2
#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
3
#define BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
5
// Copyright Aleksey Gurtovoy 2000-2004
7
// Distributed under the Boost Software License, Version 1.0.
8
// (See accompanying file LICENSE_1_0.txt or copy at
9
// http://www.boost.org/LICENSE_1_0.txt)
11
// See http://www.boost.org/libs/mpl for documentation.
13
// $Id: params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
14
// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
17
#include <boost/mpl/aux_/config/preprocessor.hpp>
19
// BOOST_MPL_PP_PARAMS(0,T): <nothing>
20
// BOOST_MPL_PP_PARAMS(1,T): T1
21
// BOOST_MPL_PP_PARAMS(2,T): T1, T2
22
// BOOST_MPL_PP_PARAMS(n,T): T1, T2, .., Tn
24
#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
26
# include <boost/preprocessor/cat.hpp>
28
# define BOOST_MPL_PP_PARAMS(n,p) \
29
BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \
32
# define BOOST_MPL_PP_PARAMS_0(p)
33
# define BOOST_MPL_PP_PARAMS_1(p) p##1
34
# define BOOST_MPL_PP_PARAMS_2(p) p##1,p##2
35
# define BOOST_MPL_PP_PARAMS_3(p) p##1,p##2,p##3
36
# define BOOST_MPL_PP_PARAMS_4(p) p##1,p##2,p##3,p##4
37
# define BOOST_MPL_PP_PARAMS_5(p) p##1,p##2,p##3,p##4,p##5
38
# define BOOST_MPL_PP_PARAMS_6(p) p##1,p##2,p##3,p##4,p##5,p##6
39
# define BOOST_MPL_PP_PARAMS_7(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7
40
# define BOOST_MPL_PP_PARAMS_8(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8
41
# define BOOST_MPL_PP_PARAMS_9(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9
45
# include <boost/preprocessor/comma_if.hpp>
46
# include <boost/preprocessor/repeat.hpp>
47
# include <boost/preprocessor/inc.hpp>
48
# include <boost/preprocessor/cat.hpp>
50
# define BOOST_MPL_PP_AUX_PARAM_FUNC(unused, i, param) \
51
BOOST_PP_COMMA_IF(i) \
52
BOOST_PP_CAT(param, BOOST_PP_INC(i)) \
55
# define BOOST_MPL_PP_PARAMS(n, param) \
58
, BOOST_MPL_PP_AUX_PARAM_FUNC \
65
#endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED