Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:57:26

0001 
0002 #if !defined(BOOST_PP_IS_ITERATING)
0003 
0004 ///// header body
0005 
0006 #ifndef BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
0007 #define BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
0008 
0009 // Copyright Aleksey Gurtovoy 2001-2004
0010 // Copyright Peter Dimov 2001-2003
0011 //
0012 // Distributed under the Boost Software License, Version 1.0. 
0013 // (See accompanying file LICENSE_1_0.txt or copy at 
0014 // http://www.boost.org/LICENSE_1_0.txt)
0015 //
0016 // See http://www.boost.org/libs/mpl for documentation.
0017 
0018 // $Id$
0019 // $Date$
0020 // $Revision$
0021 
0022 
0023 #if !defined(BOOST_MPL_PREPROCESSING_MODE)
0024 #   include <boost/mpl/arg.hpp>
0025 #   include <boost/mpl/aux_/adl_barrier.hpp>
0026 
0027 #   if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
0028 #       define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) \
0029         using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
0030         /**/
0031 #   else
0032 #       define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/
0033 #   endif
0034 
0035 #endif
0036 
0037 #include <boost/mpl/aux_/config/use_preprocessed.hpp>
0038 
0039 #if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
0040  && !defined(BOOST_MPL_PREPROCESSING_MODE)
0041 
0042 #   define BOOST_MPL_PREPROCESSED_HEADER placeholders.hpp
0043 #   include <boost/mpl/aux_/include_preprocessed.hpp>
0044 
0045 #else
0046 
0047 #   include <boost/mpl/aux_/nttp_decl.hpp>
0048 #   include <boost/mpl/limits/arity.hpp>
0049 #   include <boost/preprocessor/iterate.hpp>
0050 #   include <boost/preprocessor/cat.hpp>
0051 
0052 // watch out for GNU gettext users, who #define _(x)
0053 #if !defined(_) || defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
0054 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
0055 typedef arg<-1> _;
0056 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
0057 
0058 namespace boost { namespace mpl { 
0059 
0060 BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
0061 
0062 namespace placeholders {
0063 using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
0064 }
0065 
0066 }}
0067 #endif
0068 
0069 /// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
0070 /// specialization
0071 #define BOOST_PP_ITERATION_PARAMS_1 \
0072     (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, <boost/mpl/placeholders.hpp>))
0073 #include BOOST_PP_ITERATE()
0074 
0075 #endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
0076 #endif // BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
0077 
0078 ///// iteration
0079 
0080 #else
0081 #define i_ BOOST_PP_FRAME_ITERATION(1)
0082 
0083 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
0084 
0085 typedef arg<i_> BOOST_PP_CAT(_,i_);
0086 
0087 BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
0088 
0089 namespace boost { namespace mpl { 
0090 
0091 BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(BOOST_PP_CAT(_,i_))
0092 
0093 namespace placeholders {
0094 using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::BOOST_PP_CAT(_,i_);
0095 }
0096 
0097 }}
0098 
0099 #undef i_
0100 #endif // BOOST_PP_IS_ITERATING