File indexing completed on 2025-01-18 09:41:55
0001
0002 #if !defined(BOOST_PP_IS_ITERATING)
0003
0004
0005
0006 #ifndef BOOST_MPL_BIND_FWD_HPP_INCLUDED
0007 #define BOOST_MPL_BIND_FWD_HPP_INCLUDED
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #if !defined(BOOST_MPL_PREPROCESSING_MODE)
0022 # include <boost/mpl/aux_/na.hpp>
0023 #endif
0024
0025 #include <boost/mpl/aux_/config/bind.hpp>
0026 #include <boost/mpl/aux_/config/use_preprocessed.hpp>
0027
0028 #if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
0029 && !defined(BOOST_MPL_PREPROCESSING_MODE)
0030
0031 # define BOOST_MPL_PREPROCESSED_HEADER bind_fwd.hpp
0032 # include <boost/mpl/aux_/include_preprocessed.hpp>
0033
0034 #else
0035
0036 # include <boost/mpl/limits/arity.hpp>
0037 # include <boost/mpl/aux_/preprocessor/params.hpp>
0038 # include <boost/mpl/aux_/preprocessor/default_params.hpp>
0039 # include <boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
0040
0041 # include <boost/preprocessor/comma_if.hpp>
0042 # include <boost/preprocessor/iterate.hpp>
0043 # include <boost/preprocessor/cat.hpp>
0044
0045 namespace boost { namespace mpl {
0046
0047
0048
0049 # if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
0050 # define AUX778076_DMC_PARAM() , int dummy_ = 0
0051 # else
0052 # define AUX778076_DMC_PARAM()
0053 # endif
0054
0055 # define AUX778076_BIND_DEFAULT_PARAMS(param, value) \
0056 BOOST_MPL_PP_DEFAULT_PARAMS( \
0057 BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
0058 , param \
0059 , value \
0060 ) \
0061 AUX778076_DMC_PARAM() \
0062
0063
0064 # define AUX778076_BIND_N_PARAMS(n, param) \
0065 BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \
0066 AUX778076_DMC_PARAM() \
0067
0068
0069 #if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
0070 template<
0071 typename F, AUX778076_BIND_DEFAULT_PARAMS(typename T, na)
0072 >
0073 struct bind;
0074 #endif
0075
0076 #define BOOST_PP_ITERATION_PARAMS_1 \
0077 (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/bind_fwd.hpp>))
0078 #include BOOST_PP_ITERATE()
0079
0080 # undef AUX778076_BIND_N_PARAMS
0081 # undef AUX778076_BIND_DEFAULT_PARAMS
0082 # undef AUX778076_DMC_PARAM
0083 }}
0084
0085 #endif
0086 #endif
0087
0088
0089
0090 #else
0091 #define i_ BOOST_PP_FRAME_ITERATION(1)
0092
0093 template<
0094 typename F AUX778076_BIND_N_PARAMS(i_, typename T)
0095 >
0096 struct BOOST_PP_CAT(bind,i_);
0097
0098 #undef i_
0099 #endif