]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/phoenix/core/detail/argument.hpp
update sources to v12.2.3
[ceph.git] / ceph / src / boost / boost / phoenix / core / detail / argument.hpp
1 /*==============================================================================
2 Copyright (c) 2001-2010 Joel de Guzman
3 Copyright (c) 2010 Eric Niebler
4 Copyright (c) 2010-2011 Thomas Heller
5
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 ==============================================================================*/
9
10 #define BOOST_PHOENIX_ARGUMENT_N_TYPE(_, N, name) \
11 typedef \
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; \
15 /**/
16
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)) = {{{}}}; \
21 /**/
22
23
24 namespace placeholders
25 {
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, _)
31 #endif
32 }
33
34 namespace arg_names
35 {
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, _)
41 #endif
42 }
43
44 #undef BOOST_PHOENIX_ARGUMENT_N_TYPE
45 #undef BOOST_PHOENIX_ARGUMENT_N_INSTANCE
46