source: NonGTP/Boost/boost/mpl/placeholders.hpp @ 857

Revision 857, 2.6 KB checked in by igarcia, 19 years ago (diff)
RevLine 
[857]1
2#if !defined(BOOST_PP_IS_ITERATING)
3
4///// header body
5
6#ifndef BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
7#define BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
8
9// Copyright Aleksey Gurtovoy 2001-2004
10// Copyright Peter Dimov 2001-2003
11//
12// Distributed under the Boost Software License, Version 1.0.
13// (See accompanying file LICENSE_1_0.txt or copy at
14// http://www.boost.org/LICENSE_1_0.txt)
15//
16// See http://www.boost.org/libs/mpl for documentation.
17
18// $Source: /cvsroot/boost/boost/boost/mpl/placeholders.hpp,v $
19// $Date: 2004/09/16 14:08:46 $
20// $Revision: 1.4 $
21
22
23#if !defined(BOOST_MPL_PREPROCESSING_MODE)
24#   include <boost/mpl/arg.hpp>
25#   include <boost/mpl/aux_/adl_barrier.hpp>
26
27#   if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
28#       define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) \
29        using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
30        /**/
31#   else
32#       define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/
33#   endif
34
35#endif
36
37#include <boost/mpl/aux_/config/use_preprocessed.hpp>
38
39#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
40 && !defined(BOOST_MPL_PREPROCESSING_MODE)
41
42#   define BOOST_MPL_PREPROCESSED_HEADER placeholders.hpp
43#   include <boost/mpl/aux_/include_preprocessed.hpp>
44
45#else
46
47#   include <boost/mpl/aux_/nttp_decl.hpp>
48#   include <boost/mpl/limits/arity.hpp>
49#   include <boost/preprocessor/iterate.hpp>
50#   include <boost/preprocessor/cat.hpp>
51
52// watch out for GNU gettext users, who #define _(x)
53#if !defined(_) || defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
54BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
55typedef arg<-1> _;
56BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
57
58namespace boost { namespace mpl {
59
60BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
61
62namespace placeholders {
63using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
64}
65
66}}
67#endif
68
69/// agurt, 17/mar/02: one more placeholder for the last 'apply#'
70/// specialization
71#define BOOST_PP_ITERATION_PARAMS_1 \
72    (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, <boost/mpl/placeholders.hpp>))
73#include BOOST_PP_ITERATE()
74
75#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
76#endif // BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
77
78///// iteration
79
80#else
81#define i_ BOOST_PP_FRAME_ITERATION(1)
82
83BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
84
85typedef arg<i_> BOOST_PP_CAT(_,i_);
86
87BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
88
89namespace boost { namespace mpl {
90
91BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(BOOST_PP_CAT(_,i_))
92
93namespace placeholders {
94using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::BOOST_PP_CAT(_,i_);
95}
96
97}}
98
99#undef i_
100#endif // BOOST_PP_IS_ITERATING
Note: See TracBrowser for help on using the repository browser.