1 ///////////////////////////////////////////////////////////////////////////////
3 /// Contains macros to ease the generation of repetitious code constructs
5 // Copyright 2008 Eric Niebler. Distributed under the Boost
6 // Software License, Version 1.0. (See accompanying file
7 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 #ifndef BOOST_PROTO_LOCAL_MACRO
10 # error "local iteration target macro is not defined"
13 #ifndef BOOST_PROTO_LOCAL_LIMITS
14 # define BOOST_PROTO_LOCAL_LIMITS (1, BOOST_PROTO_MAX_ARITY)
17 #ifndef BOOST_PROTO_LOCAL_typename_A
18 # define BOOST_PROTO_LOCAL_typename_A BOOST_PROTO_typename_A
21 #ifndef BOOST_PROTO_LOCAL_A
22 # define BOOST_PROTO_LOCAL_A BOOST_PROTO_A_const_ref
25 #ifndef BOOST_PROTO_LOCAL_A_a
26 # define BOOST_PROTO_LOCAL_A_a BOOST_PROTO_A_const_ref_a
29 #ifndef BOOST_PROTO_LOCAL_a
30 # define BOOST_PROTO_LOCAL_a BOOST_PROTO_ref_a
33 #define BOOST_PP_LOCAL_LIMITS BOOST_PROTO_LOCAL_LIMITS
35 #define BOOST_PP_LOCAL_MACRO(N) \
36 BOOST_PROTO_LOCAL_MACRO( \
38 , BOOST_PROTO_LOCAL_typename_A \
39 , BOOST_PROTO_LOCAL_A \
40 , BOOST_PROTO_LOCAL_A_a \
41 , BOOST_PROTO_LOCAL_a \
45 #include BOOST_PP_LOCAL_ITERATE()
47 #undef BOOST_PROTO_LOCAL_MACRO
48 #undef BOOST_PROTO_LOCAL_LIMITS
49 #undef BOOST_PROTO_LOCAL_typename_A
50 #undef BOOST_PROTO_LOCAL_A
51 #undef BOOST_PROTO_LOCAL_A_a
52 #undef BOOST_PROTO_LOCAL_a