2 #if !defined(BOOST_PP_IS_ITERATING) 6 #ifndef BOOST_MPL_QUOTE_HPP_INCLUDED 7 #define BOOST_MPL_QUOTE_HPP_INCLUDED 21 #if !defined(BOOST_MPL_PREPROCESSING_MODE) 29 #if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ 30 && !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) 31 # define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE 34 #if !defined(BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS) \ 35 && defined(BOOST_MPL_CFG_NO_HAS_XXX) 36 # define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS 41 #if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \ 42 && !defined(BOOST_MPL_PREPROCESSING_MODE) 44 # define BOOST_MPL_PREPROCESSED_HEADER quote.hpp 57 #if !defined(BOOST_MPL_CFG_NO_QUOTE_TEMPLATE) 61 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) 63 template<
typename T,
bool has_type_ >
67 # if BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4)) \
79 template<
typename T >
80 struct quote_impl<T,false>
85 #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION 87 template<
bool >
struct quote_impl
89 template<
typename T >
struct result_
95 template<>
struct quote_impl<false>
97 template<
typename T >
struct result_
105 #define BOOST_PP_ITERATION_PARAMS_1 \ 106 (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/quote.hpp>)) 107 #include BOOST_PP_ITERATE() 111 #endif // BOOST_MPL_CFG_NO_QUOTE_TEMPLATE 113 #endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS 114 #endif // BOOST_MPL_QUOTE_HPP_INCLUDED 119 #define i_ BOOST_PP_FRAME_ITERATION(1) 122 template< BOOST_MPL_PP_PARAMS(i_,
typename P) >
class F
123 ,
typename Tag =
void_ 127 template< BOOST_MPL_PP_PARAMS(i_,
typename U) >
struct apply
128 #if defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS)
130 typedef typename quote_impl<
131 F< BOOST_MPL_PP_PARAMS(i_, U) >
132 , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >
::value 135 #elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) 137 F< BOOST_MPL_PP_PARAMS(i_, U) >
138 , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >
::value 143 : quote_impl< aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >
::value >
144 ::template result_< F< BOOST_MPL_PP_PARAMS(i_, U) > >
151 #endif // BOOST_PP_IS_ITERATING
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
#define BOOST_WORKAROUND(symbol, test)
#define BOOST_TESTED_AT(value)
#define BOOST_PP_CAT(a, b)