1 /*==============================================================================
2 Copyright (c) 2001-2010 Joel de Guzman
3 Copyright (c) 2010 Eric Niebler
4 Copyright (c) 2010-2011 Thomas Heller
6 Distributed under the Boost Software License, Version 1.0. (See accompanying
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 ==============================================================================*/
10 #define BOOST_PHOENIX_ARGUMENT_N_TYPE(_, N, name) \
12 expression::argument<BOOST_PP_INC(N)>::type \
13 BOOST_PP_CAT(BOOST_PP_CAT(name, BOOST_PP_INC(N)), _type) \
14 BOOST_ATTRIBUTE_UNUSED; \
17 #define BOOST_PHOENIX_ARGUMENT_N_INSTANCE(_, N, name) \
18 expression::argument<BOOST_PP_INC(N)>::type const \
19 BOOST_ATTRIBUTE_UNUSED \
20 BOOST_PP_CAT(name, BOOST_PP_INC(N)) = {{{}}}; \
24 namespace placeholders
26 BOOST_PP_REPEAT(BOOST_PHOENIX_ARG_LIMIT, BOOST_PHOENIX_ARGUMENT_N_TYPE, arg)
27 BOOST_PP_REPEAT(BOOST_PHOENIX_ARG_LIMIT, BOOST_PHOENIX_ARGUMENT_N_TYPE, _)
28 #ifndef BOOST_PHOENIX_NO_PREDEFINED_TERMINALS
29 BOOST_PP_REPEAT(BOOST_PHOENIX_ARG_LIMIT, BOOST_PHOENIX_ARGUMENT_N_INSTANCE, arg)
30 BOOST_PP_REPEAT(BOOST_PHOENIX_ARG_LIMIT, BOOST_PHOENIX_ARGUMENT_N_INSTANCE, _)
36 BOOST_PP_REPEAT(BOOST_PHOENIX_ARG_LIMIT, BOOST_PHOENIX_ARGUMENT_N_TYPE, arg)
37 BOOST_PP_REPEAT(BOOST_PHOENIX_ARG_LIMIT, BOOST_PHOENIX_ARGUMENT_N_TYPE, _)
38 #ifndef BOOST_PHOENIX_NO_PREDEFINED_TERMINALS
39 BOOST_PP_REPEAT(BOOST_PHOENIX_ARG_LIMIT, BOOST_PHOENIX_ARGUMENT_N_INSTANCE, arg)
40 BOOST_PP_REPEAT(BOOST_PHOENIX_ARG_LIMIT, BOOST_PHOENIX_ARGUMENT_N_INSTANCE, _)
44 #undef BOOST_PHOENIX_ARGUMENT_N_TYPE
45 #undef BOOST_PHOENIX_ARGUMENT_N_INSTANCE