Warning, file /include/boost/spirit/home/support/nonterminal/locals.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008 #if !defined(BOOST_SPIRIT_LOCALS_APRIL_03_2007_0506PM)
0009 #define BOOST_SPIRIT_LOCALS_APRIL_03_2007_0506PM
0010
0011 #if defined(_MSC_VER)
0012 #pragma once
0013 #endif
0014
0015 #include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
0016 #include <boost/preprocessor/repetition/enum_params.hpp>
0017 #include <boost/mpl/vector.hpp>
0018 #include <boost/mpl/bool.hpp>
0019
0020 #if !defined(BOOST_SPIRIT_MAX_LOCALS_SIZE)
0021 # define BOOST_SPIRIT_MAX_LOCALS_SIZE 10
0022 #else
0023 # if BOOST_SPIRIT_MAX_LOCALS_SIZE < 3
0024 # undef BOOST_SPIRIT_MAX_LOCALS_SIZE
0025 # define BOOST_SPIRIT_MAX_LOCALS_SIZE 10
0026 # endif
0027 #endif
0028
0029 namespace boost { namespace spirit
0030 {
0031
0032 template <
0033 BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
0034 BOOST_SPIRIT_MAX_LOCALS_SIZE, typename T, mpl::na)
0035 >
0036 struct locals
0037 : mpl::vector<BOOST_PP_ENUM_PARAMS(BOOST_SPIRIT_MAX_LOCALS_SIZE, T)> {};
0038
0039
0040 namespace detail
0041 {
0042 template <typename T>
0043 struct is_locals
0044 : mpl::false_
0045 {};
0046
0047 template <BOOST_PP_ENUM_PARAMS(BOOST_SPIRIT_MAX_LOCALS_SIZE, typename T)>
0048 struct is_locals<locals<BOOST_PP_ENUM_PARAMS(BOOST_SPIRIT_MAX_LOCALS_SIZE, T)> >
0049 : mpl::true_
0050 {};
0051 }
0052 }}
0053
0054 #endif