Chris@16: /////////////////////////////////////////////////////////////////////////////// Chris@16: /// \file local.hpp Chris@16: /// Contains macros to ease the generation of repetitious code constructs Chris@16: // Chris@16: // Copyright 2008 Eric Niebler. Distributed under the Boost Chris@16: // Software License, Version 1.0. (See accompanying file Chris@16: // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #ifndef BOOST_PROTO_LOCAL_MACRO Chris@16: # error "local iteration target macro is not defined" Chris@16: #endif Chris@16: Chris@16: #ifndef BOOST_PROTO_LOCAL_LIMITS Chris@16: # define BOOST_PROTO_LOCAL_LIMITS (1, BOOST_PROTO_MAX_ARITY) Chris@16: #endif Chris@16: Chris@16: #ifndef BOOST_PROTO_LOCAL_typename_A Chris@16: # define BOOST_PROTO_LOCAL_typename_A BOOST_PROTO_typename_A Chris@16: #endif Chris@16: Chris@16: #ifndef BOOST_PROTO_LOCAL_A Chris@16: # define BOOST_PROTO_LOCAL_A BOOST_PROTO_A_const_ref Chris@16: #endif Chris@16: Chris@16: #ifndef BOOST_PROTO_LOCAL_A_a Chris@16: # define BOOST_PROTO_LOCAL_A_a BOOST_PROTO_A_const_ref_a Chris@16: #endif Chris@16: Chris@16: #ifndef BOOST_PROTO_LOCAL_a Chris@16: # define BOOST_PROTO_LOCAL_a BOOST_PROTO_ref_a Chris@16: #endif Chris@16: Chris@16: #define BOOST_PP_LOCAL_LIMITS BOOST_PROTO_LOCAL_LIMITS Chris@16: Chris@16: #define BOOST_PP_LOCAL_MACRO(N) \ Chris@16: BOOST_PROTO_LOCAL_MACRO( \ Chris@16: N \ Chris@16: , BOOST_PROTO_LOCAL_typename_A \ Chris@16: , BOOST_PROTO_LOCAL_A \ Chris@16: , BOOST_PROTO_LOCAL_A_a \ Chris@16: , BOOST_PROTO_LOCAL_a \ Chris@16: ) \ Chris@16: /**/ Chris@16: Chris@16: #include BOOST_PP_LOCAL_ITERATE() Chris@16: Chris@16: #undef BOOST_PROTO_LOCAL_MACRO Chris@16: #undef BOOST_PROTO_LOCAL_LIMITS Chris@16: #undef BOOST_PROTO_LOCAL_typename_A Chris@16: #undef BOOST_PROTO_LOCAL_A Chris@16: #undef BOOST_PROTO_LOCAL_A_a Chris@16: #undef BOOST_PROTO_LOCAL_a