arg.hpp
Go to the documentation of this file.
1 
2 #if !defined(BOOST_PP_IS_ITERATING)
3 
5 
6 #ifndef BOOST_MPL_ARG_HPP_INCLUDED
7 #define BOOST_MPL_ARG_HPP_INCLUDED
8 
9 // Copyright Peter Dimov 2001-2002
10 // Copyright Aleksey Gurtovoy 2001-2004
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$
19 // $Date$
20 // $Revision$
21 
22 #if !defined(BOOST_MPL_PREPROCESSING_MODE)
23 # include <boost/mpl/arg_fwd.hpp>
24 # include <boost/mpl/aux_/na.hpp>
28 #endif
29 
32 
33 #if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
34  && !defined(BOOST_MPL_PREPROCESSING_MODE)
35 
36 # define BOOST_MPL_PREPROCESSED_HEADER arg.hpp
38 
39 #else
40 
47 
51 
53 
54 // local macro, #undef-ined at the end of the header
55 #if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
56 # define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
57  BOOST_MPL_PP_DEFAULT_PARAMS( \
58  BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
59  , param \
60  , value \
61  ) \
62 
63 #else
64 # define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
65  BOOST_MPL_PP_PARAMS( \
66  BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
67  , param \
68  ) \
69 
70 #endif
71 
72 #define BOOST_PP_ITERATION_PARAMS_1 \
73  (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/arg.hpp>))
74 #include BOOST_PP_ITERATE()
75 
76 
77 # undef AUX778076_ARG_N_DEFAULT_PARAMS
78 
80 
82 
83 #endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
84 #endif // BOOST_MPL_ARG_HPP_INCLUDED
85 
87 
88 #else
89 #define i_ BOOST_PP_FRAME_ITERATION(1)
90 
91 #if i_ > 0
92 
93 template<> struct arg<i_>
94 {
95  BOOST_STATIC_CONSTANT(int, value = i_);
99 
100  template<
101  AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na)
102  >
103  struct apply
104  {
105  typedef BOOST_PP_CAT(U,i_) type;
107  };
108 };
109 
110 #else
111 
112 template<> struct arg<-1>
113 {
114  BOOST_STATIC_CONSTANT(int, value = -1);
117 
118  template<
119  AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na)
120  >
121  struct apply
122  {
123  typedef U1 type;
125  };
126 };
127 
128 #endif // i_ > 0
129 
130 #undef i_
131 #endif // BOOST_PP_IS_ITERATING
boost_foreach_argument_dependent_lookup_hack tag
Definition: foreach_fwd.hpp:31
#define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
Definition: adl_barrier.hpp:24
GLfloat value
#define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i, type, name)
Definition: arity_spec.hpp:43
Definition: arg_fwd.hpp:23
#define BOOST_PP_CAT(a, b)
Definition: cat.hpp:22
#define BOOST_MPL_AUX_ARG_TYPEDEF(T, name)
Definition: arg_typedef.hpp:27
void next(auto_any_t cur, type2type< T, C > *)
Definition: foreach.hpp:757
#define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
Definition: adl_barrier.hpp:25
GLenum type
#define BOOST_STATIC_CONSTANT(type, assignment)
Definition: suffix.hpp:394
#define BOOST_MPL_AUX_ASSERT_NOT_NA(x)
Definition: na_assert.hpp:24
Definition: na_fwd.hpp:22


librealsense2
Author(s): Sergey Dorodnicov , Doron Hirshberg , Mark Horn , Reagan Lopez , Itay Carpis
autogenerated on Mon May 3 2021 02:45:06