blob: 0444d8ae279f0d4eeb5771a394c1fd2e1a1ad105 [file] [log] [blame]
Jeff Thompsona28eed82013-08-22 16:21:10 -07001
Jeff Thompson3d613fd2013-10-15 15:39:04 -07002#if !defined(NDNBOOST_PP_IS_ITERATING)
Jeff Thompsona28eed82013-08-22 16:21:10 -07003
4///// header body
5
Jeff Thompson3d613fd2013-10-15 15:39:04 -07006#ifndef NDNBOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
7#define NDNBOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
Jeff Thompsona28eed82013-08-22 16:21:10 -07008
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// $Id: placeholders.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
19// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
20// $Revision: 49267 $
21
22
Jeff Thompson3d613fd2013-10-15 15:39:04 -070023#if !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
Jeff Thompsona28eed82013-08-22 16:21:10 -070024# include <ndnboost/mpl/arg.hpp>
25# include <ndnboost/mpl/aux_/adl_barrier.hpp>
26
Jeff Thompson3d613fd2013-10-15 15:39:04 -070027# if !defined(NDNBOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
28# define NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) \
29 using ::NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
Jeff Thompsona28eed82013-08-22 16:21:10 -070030 /**/
31# else
Jeff Thompson3d613fd2013-10-15 15:39:04 -070032# define NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/
Jeff Thompsona28eed82013-08-22 16:21:10 -070033# endif
34
35#endif
36
37#include <ndnboost/mpl/aux_/config/use_preprocessed.hpp>
38
Jeff Thompson3d613fd2013-10-15 15:39:04 -070039#if !defined(NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
40 && !defined(NDNBOOST_MPL_PREPROCESSING_MODE)
Jeff Thompsona28eed82013-08-22 16:21:10 -070041
Jeff Thompson3d613fd2013-10-15 15:39:04 -070042# define NDNBOOST_MPL_PREPROCESSED_HEADER placeholders.hpp
Jeff Thompsona28eed82013-08-22 16:21:10 -070043# include <ndnboost/mpl/aux_/include_preprocessed.hpp>
44
45#else
46
47# include <ndnboost/mpl/aux_/nttp_decl.hpp>
48# include <ndnboost/mpl/limits/arity.hpp>
49# include <ndnboost/preprocessor/iterate.hpp>
50# include <ndnboost/preprocessor/cat.hpp>
51
52// watch out for GNU gettext users, who #define _(x)
Jeff Thompson3d613fd2013-10-15 15:39:04 -070053#if !defined(_) || defined(NDNBOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
54NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
Jeff Thompsona28eed82013-08-22 16:21:10 -070055typedef arg<-1> _;
Jeff Thompson3d613fd2013-10-15 15:39:04 -070056NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
Jeff Thompsona28eed82013-08-22 16:21:10 -070057
58namespace ndnboost { namespace mpl {
59
Jeff Thompson3d613fd2013-10-15 15:39:04 -070060NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
Jeff Thompsona28eed82013-08-22 16:21:10 -070061
62namespace placeholders {
Jeff Thompson3d613fd2013-10-15 15:39:04 -070063using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
Jeff Thompsona28eed82013-08-22 16:21:10 -070064}
65
66}}
67#endif
68
69/// agurt, 17/mar/02: one more placeholder for the last 'apply#'
70/// specialization
Jeff Thompson3d613fd2013-10-15 15:39:04 -070071#define NDNBOOST_PP_ITERATION_PARAMS_1 \
72 (3,(1, NDNBOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, <ndnboost/mpl/placeholders.hpp>))
73#include NDNBOOST_PP_ITERATE()
Jeff Thompsona28eed82013-08-22 16:21:10 -070074
Jeff Thompson3d613fd2013-10-15 15:39:04 -070075#endif // NDNBOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
76#endif // NDNBOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
Jeff Thompsona28eed82013-08-22 16:21:10 -070077
78///// iteration
79
80#else
Jeff Thompson3d613fd2013-10-15 15:39:04 -070081#define i_ NDNBOOST_PP_FRAME_ITERATION(1)
Jeff Thompsona28eed82013-08-22 16:21:10 -070082
Jeff Thompson3d613fd2013-10-15 15:39:04 -070083NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
Jeff Thompsona28eed82013-08-22 16:21:10 -070084
Jeff Thompson3d613fd2013-10-15 15:39:04 -070085typedef arg<i_> NDNBOOST_PP_CAT(_,i_);
Jeff Thompsona28eed82013-08-22 16:21:10 -070086
Jeff Thompson3d613fd2013-10-15 15:39:04 -070087NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
Jeff Thompsona28eed82013-08-22 16:21:10 -070088
89namespace ndnboost { namespace mpl {
90
Jeff Thompson3d613fd2013-10-15 15:39:04 -070091NDNBOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(NDNBOOST_PP_CAT(_,i_))
Jeff Thompsona28eed82013-08-22 16:21:10 -070092
93namespace placeholders {
Jeff Thompson3d613fd2013-10-15 15:39:04 -070094using NDNBOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::NDNBOOST_PP_CAT(_,i_);
Jeff Thompsona28eed82013-08-22 16:21:10 -070095}
96
97}}
98
99#undef i_
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700100#endif // NDNBOOST_PP_IS_ITERATING