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