Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:50:27

0001 ///////////////////////////////////////////////////////////////////////////////
0002 /// \file local.hpp
0003 /// Contains macros to ease the generation of repetitious code constructs
0004 //
0005 //  Copyright 2008 Eric Niebler. Distributed under the Boost
0006 //  Software License, Version 1.0. (See accompanying file
0007 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008 
0009 #ifndef BOOST_PROTO_LOCAL_MACRO
0010 # error "local iteration target macro is not defined"
0011 #endif
0012 
0013 #ifndef BOOST_PROTO_LOCAL_LIMITS
0014 # define BOOST_PROTO_LOCAL_LIMITS (1, BOOST_PROTO_MAX_ARITY)
0015 #endif
0016 
0017 #ifndef BOOST_PROTO_LOCAL_typename_A
0018 # define BOOST_PROTO_LOCAL_typename_A BOOST_PROTO_typename_A
0019 #endif
0020 
0021 #ifndef BOOST_PROTO_LOCAL_A
0022 # define BOOST_PROTO_LOCAL_A BOOST_PROTO_A_const_ref
0023 #endif
0024 
0025 #ifndef BOOST_PROTO_LOCAL_A_a
0026 # define BOOST_PROTO_LOCAL_A_a BOOST_PROTO_A_const_ref_a
0027 #endif
0028 
0029 #ifndef BOOST_PROTO_LOCAL_a
0030 # define BOOST_PROTO_LOCAL_a BOOST_PROTO_ref_a
0031 #endif
0032 
0033 #define BOOST_PP_LOCAL_LIMITS BOOST_PROTO_LOCAL_LIMITS
0034 
0035 #define BOOST_PP_LOCAL_MACRO(N)       \
0036   BOOST_PROTO_LOCAL_MACRO(            \
0037       N                               \
0038     , BOOST_PROTO_LOCAL_typename_A    \
0039     , BOOST_PROTO_LOCAL_A             \
0040     , BOOST_PROTO_LOCAL_A_a           \
0041     , BOOST_PROTO_LOCAL_a             \
0042   )                                   \
0043   /**/
0044 
0045 #include BOOST_PP_LOCAL_ITERATE()
0046 
0047 #undef BOOST_PROTO_LOCAL_MACRO
0048 #undef BOOST_PROTO_LOCAL_LIMITS
0049 #undef BOOST_PROTO_LOCAL_typename_A
0050 #undef BOOST_PROTO_LOCAL_A
0051 #undef BOOST_PROTO_LOCAL_A_a
0052 #undef BOOST_PROTO_LOCAL_a