Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:41:55

0001 
0002 #if !defined(BOOST_PP_IS_ITERATING)
0003 
0004 ///// header body
0005 
0006 #ifndef BOOST_MPL_BIND_FWD_HPP_INCLUDED
0007 #define BOOST_MPL_BIND_FWD_HPP_INCLUDED
0008 
0009 // Copyright Aleksey Gurtovoy 2000-2004
0010 //
0011 // Distributed under the Boost Software License, Version 1.0. 
0012 // (See accompanying file LICENSE_1_0.txt or copy at 
0013 // http://www.boost.org/LICENSE_1_0.txt)
0014 //
0015 // See http://www.boost.org/libs/mpl for documentation.
0016 
0017 // $Id$
0018 // $Date$
0019 // $Revision$
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 // local macros, #undef-ined at the end of the header
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 // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
0086 #endif // BOOST_MPL_BIND_FWD_HPP_INCLUDED
0087 
0088 ///// iteration
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 // BOOST_PP_IS_ITERATING