From 36daa30dbec152660988e8e64d0c39ea1622a71c Mon Sep 17 00:00:00 2001
From: Tim Blechmann <tim@klingt.org>
Date: Wed, 20 Aug 2008 10:44:35 +0200
Subject: [PATCH] [boost.mpl] gcc-4.4 fixes
---
libs/boost/boost/mpl/apply.hpp | 16 ++++++-----
libs/boost/boost/mpl/apply_wrap.hpp | 15 ++++++----
libs/boost/boost/mpl/aux_/full_lambda.hpp | 22 ++++++++-------
libs/boost/boost/mpl/aux_/numeric_op.hpp | 30 +++++++++++----------
libs/boost/boost/mpl/bind.hpp | 40 ++++++++++++++++-------------
5 files changed, 68 insertions(+), 55 deletions(-)
diff --git a/libs/boost/boost/mpl/apply.hpp b/libs/boost/boost/mpl/apply.hpp
index eb7ab65..37cb4af 100644
a
|
b
|
|
8 | 8 | |
9 | 9 | // Copyright Aleksey Gurtovoy 2000-2004 |
10 | 10 | // |
11 | | // Distributed under the Boost Software License, Version 1.0. |
12 | | // (See accompanying file LICENSE_1_0.txt or copy at |
| 11 | // Distributed under the Boost Software License, Version 1.0. |
| 12 | // (See accompanying file LICENSE_1_0.txt or copy at |
13 | 13 | // http://www.boost.org/LICENSE_1_0.txt) |
14 | 14 | // |
15 | 15 | // See http://www.boost.org/libs/mpl for documentation. |
… |
… |
namespace boost { namespace mpl {
|
85 | 85 | BOOST_PP_COMMA_IF(n) \ |
86 | 86 | BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \ |
87 | 87 | /**/ |
88 | | |
| 88 | |
89 | 89 | # define AUX778076_APPLY_N_SPEC_PARAMS(n, param) \ |
90 | 90 | BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \ |
91 | 91 | /**/ |
… |
… |
template<
|
112 | 112 | typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na) |
113 | 113 | > |
114 | 114 | struct apply |
115 | | : aux::apply_chooser< |
| 115 | : aux::apply_chooser< |
116 | 116 | aux::apply_count_args< AUX778076_APPLY_PARAMS(T) >::value |
117 | 117 | >::template result_< F, AUX778076_APPLY_PARAMS(T) >::type |
118 | 118 | { |
… |
… |
struct apply
|
135 | 135 | |
136 | 136 | ///// iteration, depth == 1 |
137 | 137 | |
138 | | #elif BOOST_PP_ITERATION_DEPTH() == 1 |
| 138 | #else |
| 139 | #if BOOST_PP_ITERATION_DEPTH() == 1 |
139 | 140 | |
140 | 141 | # define i_ BOOST_PP_FRAME_ITERATION(1) |
141 | 142 | |
… |
… |
template<
|
144 | 145 | > |
145 | 146 | struct BOOST_PP_CAT(apply,i_) |
146 | 147 | #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) |
147 | | : BOOST_PP_CAT(apply_wrap,i_)< |
| 148 | : BOOST_PP_CAT(apply_wrap,i_)< |
148 | 149 | typename lambda<F>::type |
149 | 150 | AUX778076_APPLY_N_COMMA_PARAMS(i_, T) |
150 | 151 | > |
151 | 152 | { |
152 | 153 | #else |
153 | 154 | { |
154 | | typedef typename BOOST_PP_CAT(apply_wrap,i_)< |
| 155 | typedef typename BOOST_PP_CAT(apply_wrap,i_)< |
155 | 156 | typename lambda<F>::type |
156 | 157 | AUX778076_APPLY_N_COMMA_PARAMS(i_, T) |
157 | 158 | >::type type; |
… |
… |
struct apply_chooser<i_>
|
222 | 223 | |
223 | 224 | # undef i_ |
224 | 225 | |
| 226 | #endif |
225 | 227 | #endif // BOOST_PP_IS_ITERATING |
diff --git a/libs/boost/boost/mpl/apply_wrap.hpp b/libs/boost/boost/mpl/apply_wrap.hpp
index ede272a..43cff2a 100644
a
|
b
|
|
8 | 8 | |
9 | 9 | // Copyright Aleksey Gurtovoy 2000-2004 |
10 | 10 | // |
11 | | // Distributed under the Boost Software License, Version 1.0. |
12 | | // (See accompanying file LICENSE_1_0.txt or copy at |
| 11 | // Distributed under the Boost Software License, Version 1.0. |
| 12 | // (See accompanying file LICENSE_1_0.txt or copy at |
13 | 13 | // http://www.boost.org/LICENSE_1_0.txt) |
14 | 14 | // |
15 | 15 | // See http://www.boost.org/libs/mpl for documentation. |
… |
… |
namespace boost { namespace mpl {
|
78 | 78 | |
79 | 79 | ///// iteration, depth == 1 |
80 | 80 | |
81 | | #elif BOOST_PP_ITERATION_DEPTH() == 1 |
| 81 | #else |
| 82 | #if BOOST_PP_ITERATION_DEPTH() == 1 |
82 | 83 | |
83 | 84 | # define i_ BOOST_PP_FRAME_ITERATION(1) |
84 | 85 | |
… |
… |
struct BOOST_PP_CAT(apply_wrap,i_)
|
140 | 141 | : F::template apply< AUX778076_APPLY_WRAP_PARAMS(i_, T) > |
141 | 142 | { |
142 | 143 | #else |
143 | | { |
| 144 | { |
144 | 145 | typedef typename F::template apply< |
145 | 146 | AUX778076_APPLY_WRAP_PARAMS(i_, T) |
146 | 147 | >::type type; |
… |
… |
struct BOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
|
169 | 170 | # undef i_ |
170 | 171 | |
171 | 172 | ///// iteration, depth == 2 |
172 | | |
173 | | #elif BOOST_PP_ITERATION_DEPTH() == 2 |
| 173 | #else |
| 174 | #if BOOST_PP_ITERATION_DEPTH() == 2 |
174 | 175 | |
175 | 176 | # define j_ BOOST_PP_FRAME_ITERATION(2) |
176 | 177 | |
… |
… |
struct BOOST_PP_CAT(apply_wrap_impl,i_)<
|
197 | 198 | |
198 | 199 | # undef j_ |
199 | 200 | |
| 201 | #endif |
| 202 | #endif |
200 | 203 | #endif // BOOST_PP_IS_ITERATING |
diff --git a/libs/boost/boost/mpl/aux_/full_lambda.hpp b/libs/boost/boost/mpl/aux_/full_lambda.hpp
index 3e85edd..86bdcd3 100644
a
|
b
|
|
8 | 8 | |
9 | 9 | // Copyright Aleksey Gurtovoy 2001-2004 |
10 | 10 | // |
11 | | // Distributed under the Boost Software License, Version 1.0. |
12 | | // (See accompanying file LICENSE_1_0.txt or copy at |
| 11 | // Distributed under the Boost Software License, Version 1.0. |
| 12 | // (See accompanying file LICENSE_1_0.txt or copy at |
13 | 13 | // http://www.boost.org/LICENSE_1_0.txt) |
14 | 14 | // |
15 | 15 | // See http://www.boost.org/libs/mpl for documentation. |
… |
… |
struct lambda< arg<N>,Tag AUX778076_ARITY_PARAM(int_<-1>) >
|
127 | 127 | { |
128 | 128 | typedef true_ is_le; |
129 | 129 | typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41 |
130 | | typedef mpl::protect<result_> type; |
| 130 | typedef mpl::protect<result_> type; |
131 | 131 | }; |
132 | 132 | |
133 | 133 | |
… |
… |
struct lambda<
|
181 | 181 | typedef typename l1::is_le is_le; |
182 | 182 | typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_; |
183 | 183 | typedef lambda< typename if_<is_le,arity_,Arity>::type,Tag2 > l3; |
184 | | |
| 184 | |
185 | 185 | typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_; |
186 | 186 | typedef typename le_result_::result_ result_; |
187 | 187 | typedef typename le_result_::type type; |
… |
… |
struct lambda<
|
200 | 200 | { |
201 | 201 | typedef lambda< F,Tag2 > l1; |
202 | 202 | typedef lambda< Tag1,Tag2 > l2; |
203 | | |
| 203 | |
204 | 204 | typedef typename l1::is_le is_le; |
205 | 205 | typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_; |
206 | 206 | typedef typename le_result_::result_ result_; |
… |
… |
BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
|
227 | 227 | |
228 | 228 | ///// iteration, depth == 1 |
229 | 229 | |
230 | | #elif BOOST_PP_ITERATION_DEPTH() == 1 |
| 230 | #else |
| 231 | #if BOOST_PP_ITERATION_DEPTH() == 1 |
231 | 232 | #define i_ BOOST_PP_FRAME_ITERATION(1) |
232 | 233 | |
233 | 234 | #if i_ > 0 |
… |
… |
struct BOOST_PP_CAT(le_result,i_)
|
254 | 255 | typedef F< |
255 | 256 | BOOST_MPL_PP_REPEAT(i_, AUX778076_TYPE, L) |
256 | 257 | > result_; |
257 | | |
| 258 | |
258 | 259 | typedef result_ type; |
259 | 260 | }; |
260 | 261 | |
… |
… |
template<
|
299 | 300 | , AUX778076_LAMBDA_PARAMS(i_, typename T) |
300 | 301 | , typename Tag |
301 | 302 | > |
302 | | struct lambda< |
| 303 | struct lambda< |
303 | 304 | F<AUX778076_LAMBDA_PARAMS(i_, T)> |
304 | 305 | , Tag |
305 | 306 | AUX778076_ARITY_PARAM(int_<i_>) |
… |
… |
struct lambda<
|
315 | 316 | typedef aux::BOOST_PP_CAT(le_result,i_)< |
316 | 317 | is_le, Tag, F, AUX778076_LAMBDA_PARAMS(i_, l) |
317 | 318 | > le_result_; |
318 | | |
| 319 | |
319 | 320 | typedef typename le_result_::result_ result_; |
320 | 321 | typedef typename le_result_::type type; |
321 | 322 | }; |
… |
… |
struct lambda<
|
342 | 343 | F |
343 | 344 | AUX778076_BIND_N_PARAMS(i_, T) |
344 | 345 | > result_; |
345 | | |
| 346 | |
346 | 347 | typedef result_ type; |
347 | 348 | }; |
348 | 349 | |
349 | 350 | #undef i_ |
| 351 | #endif |
350 | 352 | #endif // BOOST_PP_IS_ITERATING |
diff --git a/libs/boost/boost/mpl/aux_/numeric_op.hpp b/libs/boost/boost/mpl/aux_/numeric_op.hpp
index 4737a38..0c4a05e 100644
a
|
b
|
|
7 | 7 | |
8 | 8 | // Copyright Aleksey Gurtovoy 2000-2004 |
9 | 9 | // |
10 | | // Distributed under the Boost Software License, Version 1.0. |
11 | | // (See accompanying file LICENSE_1_0.txt or copy at |
| 10 | // Distributed under the Boost Software License, Version 1.0. |
| 11 | // (See accompanying file LICENSE_1_0.txt or copy at |
12 | 12 | // http://www.boost.org/LICENSE_1_0.txt) |
13 | 13 | // |
14 | 14 | // See http://www.boost.org/libs/mpl for documentation. |
… |
… |
|
71 | 71 | |
72 | 72 | namespace boost { namespace mpl { |
73 | 73 | |
74 | | template< |
| 74 | template< |
75 | 75 | typename Tag1 |
76 | 76 | , typename Tag2 |
77 | 77 | #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) |
78 | | , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value |
79 | | , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value |
| 78 | , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value |
| 79 | , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value |
80 | 80 | > |
81 | 81 | struct AUX778076_OP_IMPL_NAME |
82 | 82 | : if_c< |
… |
… |
struct AUX778076_OP_IMPL_NAME
|
98 | 98 | /// for Digital Mars C++/compilers with no CTPS/TTP support |
99 | 99 | template<> struct AUX778076_OP_IMPL_NAME<na,na> |
100 | 100 | { |
101 | | template< typename U1, typename U2 > struct apply |
| 101 | template< typename U1, typename U2 > struct apply |
102 | 102 | { |
103 | 103 | typedef apply type; |
104 | 104 | BOOST_STATIC_CONSTANT(int, value = 0); |
… |
… |
template<> struct AUX778076_OP_IMPL_NAME<na,na>
|
108 | 108 | #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) |
109 | 109 | template< typename Tag > struct AUX778076_OP_IMPL_NAME<na,Tag> |
110 | 110 | { |
111 | | template< typename U1, typename U2 > struct apply |
| 111 | template< typename U1, typename U2 > struct apply |
112 | 112 | { |
113 | 113 | typedef apply type; |
114 | 114 | BOOST_STATIC_CONSTANT(int, value = 0); |
… |
… |
template< typename Tag > struct AUX778076_OP_IMPL_NAME<na,Tag>
|
117 | 117 | |
118 | 118 | template< typename Tag > struct AUX778076_OP_IMPL_NAME<Tag,na> |
119 | 119 | { |
120 | | template< typename U1, typename U2 > struct apply |
| 120 | template< typename U1, typename U2 > struct apply |
121 | 121 | { |
122 | 122 | typedef apply type; |
123 | 123 | BOOST_STATIC_CONSTANT(int, value = 0); |
… |
… |
template< typename Tag > struct AUX778076_OP_IMPL_NAME<Tag,na>
|
126 | 126 | #else |
127 | 127 | template<> struct AUX778076_OP_IMPL_NAME<na,integral_c_tag> |
128 | 128 | { |
129 | | template< typename U1, typename U2 > struct apply |
| 129 | template< typename U1, typename U2 > struct apply |
130 | 130 | { |
131 | 131 | typedef apply type; |
132 | 132 | BOOST_STATIC_CONSTANT(int, value = 0); |
… |
… |
template<> struct AUX778076_OP_IMPL_NAME<na,integral_c_tag>
|
135 | 135 | |
136 | 136 | template<> struct AUX778076_OP_IMPL_NAME<integral_c_tag,na> |
137 | 137 | { |
138 | | template< typename U1, typename U2 > struct apply |
| 138 | template< typename U1, typename U2 > struct apply |
139 | 139 | { |
140 | 140 | typedef apply type; |
141 | 141 | BOOST_STATIC_CONSTANT(int, value = 0); |
… |
… |
struct AUX778076_OP_NAME
|
193 | 193 | # else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION |
194 | 194 | |
195 | 195 | /// forward declaration |
196 | | template< |
| 196 | template< |
197 | 197 | typename BOOST_MPL_AUX_NA_PARAM(N1) |
198 | 198 | , typename BOOST_MPL_AUX_NA_PARAM(N2) |
199 | 199 | > |
… |
… |
struct AUX778076_OP_NAME
|
228 | 228 | ) |
229 | 229 | }; |
230 | 230 | |
231 | | template< |
| 231 | template< |
232 | 232 | typename N1 |
233 | 233 | , typename N2 |
234 | 234 | > |
… |
… |
struct BOOST_PP_CAT(AUX778076_OP_NAME,2)
|
238 | 238 | |
239 | 239 | #else // AUX778076_OP_ARITY == 2 |
240 | 240 | |
241 | | template< |
| 241 | template< |
242 | 242 | typename BOOST_MPL_AUX_NA_PARAM(N1) |
243 | 243 | , typename BOOST_MPL_AUX_NA_PARAM(N2) |
244 | 244 | > |
… |
… |
BOOST_MPL_AUX_NA_SPEC2(2, AUX778076_OP_ARITY, AUX778076_OP_NAME)
|
287 | 287 | |
288 | 288 | ///// iteration, depth == 1 |
289 | 289 | |
290 | | #elif BOOST_PP_ITERATION_DEPTH() == 1 |
| 290 | #else |
| 291 | #if BOOST_PP_ITERATION_DEPTH() == 1 |
291 | 292 | |
292 | 293 | # define i_ BOOST_PP_FRAME_ITERATION(1) |
293 | 294 | |
… |
… |
struct AUX778076_OP_NAME<BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na)>
|
308 | 309 | |
309 | 310 | # undef i_ |
310 | 311 | |
| 312 | #endif |
311 | 313 | #endif // BOOST_PP_IS_ITERATING |
diff --git a/libs/boost/boost/mpl/bind.hpp b/libs/boost/boost/mpl/bind.hpp
index 8b17bb8..88a1081 100644
a
|
b
|
|
9 | 9 | // Copyright Peter Dimov 2001 |
10 | 10 | // Copyright Aleksey Gurtovoy 2001-2004 |
11 | 11 | // |
12 | | // Distributed under the Boost Software License, Version 1.0. |
13 | | // (See accompanying file LICENSE_1_0.txt or copy at |
| 12 | // Distributed under the Boost Software License, Version 1.0. |
| 13 | // (See accompanying file LICENSE_1_0.txt or copy at |
14 | 14 | // http://www.boost.org/LICENSE_1_0.txt) |
15 | 15 | // |
16 | 16 | // See http://www.boost.org/libs/mpl for documentation. |
… |
… |
|
32 | 32 | # include <boost/mpl/aux_/yes_no.hpp> |
33 | 33 | # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) |
34 | 34 | # include <boost/type_traits/is_reference.hpp> |
35 | | # endif |
| 35 | # endif |
36 | 36 | #endif |
37 | 37 | |
38 | 38 | #include <boost/mpl/aux_/config/bind.hpp> |
… |
… |
struct resolve_bind_arg< bind<F,AUX778076_BIND_PARAMS(T)>,AUX778076_BIND_PARAMS(
|
173 | 173 | |
174 | 174 | #else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION |
175 | 175 | |
176 | | // agurt, 15/jan/02: it's not a intended to be used as a function class, and |
| 176 | // agurt, 15/jan/02: it's not a intended to be used as a function class, and |
177 | 177 | // MSVC6.5 has problems with 'apply' name here (the code compiles, but doesn't |
178 | 178 | // work), so I went with the 'result_' here, and in all other similar cases |
179 | 179 | template< bool > |
… |
… |
struct resolve_arg_impl
|
185 | 185 | }; |
186 | 186 | }; |
187 | 187 | |
188 | | template<> |
| 188 | template<> |
189 | 189 | struct resolve_arg_impl<true> |
190 | 190 | { |
191 | 191 | template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_ |
… |
… |
struct resolve_arg_impl<true>
|
200 | 200 | // for 'resolve_bind_arg' |
201 | 201 | template< typename T > struct is_bind_template; |
202 | 202 | |
203 | | template< |
| 203 | template< |
204 | 204 | typename T, AUX778076_BIND_PARAMS(typename U) |
205 | 205 | > |
206 | 206 | struct resolve_bind_arg |
… |
… |
struct resolve_bind_arg
|
211 | 211 | |
212 | 212 | # if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) |
213 | 213 | |
214 | | template< typename T > |
| 214 | template< typename T > |
215 | 215 | struct replace_unnamed_arg_impl |
216 | 216 | { |
217 | 217 | template< typename Arg > struct result_ |
… |
… |
struct replace_unnamed_arg_impl
|
221 | 221 | }; |
222 | 222 | }; |
223 | 223 | |
224 | | template<> |
| 224 | template<> |
225 | 225 | struct replace_unnamed_arg_impl< arg<-1> > |
226 | 226 | { |
227 | 227 | template< typename Arg > struct result_ |
… |
… |
struct replace_unnamed_arg_impl< arg<-1> >
|
231 | 231 | }; |
232 | 232 | }; |
233 | 233 | |
234 | | template< typename T, typename Arg > |
| 234 | template< typename T, typename Arg > |
235 | 235 | struct replace_unnamed_arg |
236 | 236 | : replace_unnamed_arg_impl<T>::template result_<Arg> |
237 | 237 | { |
… |
… |
aux::no_tag is_bind_helper(...);
|
247 | 247 | template< typename T > aux::no_tag is_bind_helper(protect<T>*); |
248 | 248 | |
249 | 249 | // overload for "main" form |
250 | | // agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload |
251 | | // in case if we use 'aux::type_wrapper< bind<...> >' here, and all |
| 250 | // agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload |
| 251 | // in case if we use 'aux::type_wrapper< bind<...> >' here, and all |
252 | 252 | // 'bind' instantiations form a complete type anyway |
253 | 253 | #if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) |
254 | 254 | template< |
… |
… |
struct is_bind_template_impl<false>
|
274 | 274 | { |
275 | 275 | template< typename T > struct result_ |
276 | 276 | { |
277 | | BOOST_STATIC_CONSTANT(bool, value = |
278 | | sizeof(aux::is_bind_helper(static_cast<T*>(0))) |
| 277 | BOOST_STATIC_CONSTANT(bool, value = |
| 278 | sizeof(aux::is_bind_helper(static_cast<T*>(0))) |
279 | 279 | == sizeof(aux::yes_tag) |
280 | 280 | ); |
281 | 281 | }; |
… |
… |
BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
|
361 | 361 | |
362 | 362 | ///// iteration, depth == 1 |
363 | 363 | |
364 | | #elif BOOST_PP_ITERATION_DEPTH() == 1 |
| 364 | #else |
| 365 | #if BOOST_PP_ITERATION_DEPTH() == 1 |
365 | 366 | |
366 | 367 | # define i_ BOOST_PP_FRAME_ITERATION(1) |
367 | 368 | |
… |
… |
template< BOOST_MPL_PP_PARAMS(i_, typename T) > struct AUX778076_SPEC_NAME;
|
376 | 377 | template< |
377 | 378 | typename Tag AUX778076_BIND_N_PARAMS(i_, typename T) |
378 | 379 | > |
379 | | struct BOOST_PP_CAT(bind,i_)< |
| 380 | struct BOOST_PP_CAT(bind,i_)< |
380 | 381 | BOOST_PP_CAT(quote,i_)<AUX778076_SPEC_NAME,Tag> |
381 | 382 | AUX778076_BIND_N_PARAMS(i_,T) |
382 | 383 | > |
… |
… |
struct BOOST_PP_CAT(bind,i_)
|
441 | 442 | /**/ |
442 | 443 | |
443 | 444 | typedef typename BOOST_PP_CAT(apply_wrap,i_)< |
444 | | f_ |
| 445 | f_ |
445 | 446 | BOOST_PP_COMMA_IF(i_) BOOST_MPL_PP_REPEAT(i_, AUX778076_ARG, t) |
446 | 447 | >::type type; |
447 | 448 | |
… |
… |
BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_))
|
481 | 482 | |
482 | 483 | # if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) |
483 | 484 | # if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) |
484 | | |
| 485 | |
485 | 486 | #if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY |
486 | 487 | /// primary template (not a specialization!) |
487 | 488 | template< |
… |
… |
struct bind_chooser<i_>
|
528 | 529 | |
529 | 530 | ///// iteration, depth == 2 |
530 | 531 | |
531 | | #elif BOOST_PP_ITERATION_DEPTH() == 2 |
| 532 | #else |
| 533 | #if BOOST_PP_ITERATION_DEPTH() == 2 |
532 | 534 | |
533 | 535 | # define j_ BOOST_PP_FRAME_ITERATION(2) |
534 | 536 | # if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT) |
… |
… |
struct bind_chooser<i_>
|
544 | 546 | # endif |
545 | 547 | # undef j_ |
546 | 548 | |
| 549 | #endif |
| 550 | #endif |
547 | 551 | #endif // BOOST_PP_IS_ITERATING |