File indexing completed on 2025-01-18 09:40:59
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 namespace boost { namespace mpl {
0013
0014 template<
0015 int N, typename F
0016 >
0017 struct apply_wrap_impl0;
0018
0019 template< typename F, bool F_has_apply >
0020 struct apply_wrap_impl0_bcb {
0021 typedef typename F::template apply<na> type;
0022 };
0023
0024 template< typename F >
0025 struct apply_wrap_impl0_bcb< F,true > {
0026 typedef typename F::apply type;
0027 };
0028
0029 template<
0030 typename F
0031 >
0032 struct apply_wrap_impl0<
0033 0
0034 , F
0035
0036 >
0037 {
0038 typedef apply_wrap_impl0_bcb< F, aux::has_apply<F>::value >::type type;
0039 };
0040
0041 template<
0042 typename F
0043 >
0044 struct apply_wrap_impl0<
0045 1
0046 , F
0047
0048 >
0049 {
0050 typedef typename F::template apply<
0051
0052 na
0053 > type;
0054 };
0055
0056 template<
0057 typename F
0058 >
0059 struct apply_wrap_impl0<
0060 2
0061 , F
0062
0063 >
0064 {
0065 typedef typename F::template apply<
0066
0067 na, na
0068
0069 > type;
0070 };
0071
0072 template<
0073 typename F
0074 >
0075 struct apply_wrap_impl0<
0076 3
0077 , F
0078
0079 >
0080 {
0081 typedef typename F::template apply<
0082
0083 na, na, na
0084
0085 > type;
0086 };
0087
0088 template<
0089 typename F
0090 >
0091 struct apply_wrap_impl0<
0092 4
0093 , F
0094
0095 >
0096 {
0097 typedef typename F::template apply<
0098
0099 na, na, na, na
0100
0101 > type;
0102 };
0103
0104 template<
0105 typename F
0106 >
0107 struct apply_wrap_impl0<
0108 5
0109 , F
0110
0111 >
0112 {
0113 typedef typename F::template apply<
0114
0115 na, na, na, na, na
0116
0117 > type;
0118 };
0119
0120 template<
0121 typename F
0122 >
0123 struct apply_wrap0
0124 : apply_wrap_impl0<
0125 ::boost::mpl::aux::arity< F,0 >::value
0126 , F
0127
0128 >::type
0129 {
0130 };
0131
0132 template<
0133 int N, typename F, typename T1
0134 >
0135 struct apply_wrap_impl1;
0136
0137 template<
0138 typename F, typename T1
0139 >
0140 struct apply_wrap_impl1<
0141 1
0142 , F
0143 , T1
0144 >
0145 {
0146 typedef typename F::template apply<
0147 T1
0148 > type;
0149 };
0150
0151 template<
0152 typename F, typename T1
0153 >
0154 struct apply_wrap_impl1<
0155 2
0156 , F
0157 , T1
0158 >
0159 {
0160 typedef typename F::template apply<
0161 T1
0162 , na
0163
0164 > type;
0165 };
0166
0167 template<
0168 typename F, typename T1
0169 >
0170 struct apply_wrap_impl1<
0171 3
0172 , F
0173 , T1
0174 >
0175 {
0176 typedef typename F::template apply<
0177 T1
0178 , na, na
0179
0180 > type;
0181 };
0182
0183 template<
0184 typename F, typename T1
0185 >
0186 struct apply_wrap_impl1<
0187 4
0188 , F
0189 , T1
0190 >
0191 {
0192 typedef typename F::template apply<
0193 T1
0194 , na, na, na
0195
0196 > type;
0197 };
0198
0199 template<
0200 typename F, typename T1
0201 >
0202 struct apply_wrap_impl1<
0203 5
0204 , F
0205 , T1
0206 >
0207 {
0208 typedef typename F::template apply<
0209 T1
0210 , na, na, na, na
0211
0212 > type;
0213 };
0214
0215 template<
0216 typename F, typename T1
0217 >
0218 struct apply_wrap1
0219 : apply_wrap_impl1<
0220 ::boost::mpl::aux::arity< F,1 >::value
0221 , F
0222 , T1
0223 >::type
0224 {
0225 };
0226
0227 template<
0228 int N, typename F, typename T1, typename T2
0229 >
0230 struct apply_wrap_impl2;
0231
0232 template<
0233 typename F, typename T1, typename T2
0234 >
0235 struct apply_wrap_impl2<
0236 2
0237 , F
0238 , T1, T2
0239 >
0240 {
0241 typedef typename F::template apply<
0242 T1, T2
0243
0244 > type;
0245 };
0246
0247 template<
0248 typename F, typename T1, typename T2
0249 >
0250 struct apply_wrap_impl2<
0251 3
0252 , F
0253 , T1, T2
0254 >
0255 {
0256 typedef typename F::template apply<
0257 T1, T2
0258
0259 , na
0260
0261 > type;
0262 };
0263
0264 template<
0265 typename F, typename T1, typename T2
0266 >
0267 struct apply_wrap_impl2<
0268 4
0269 , F
0270 , T1, T2
0271 >
0272 {
0273 typedef typename F::template apply<
0274 T1, T2
0275
0276 , na, na
0277
0278 > type;
0279 };
0280
0281 template<
0282 typename F, typename T1, typename T2
0283 >
0284 struct apply_wrap_impl2<
0285 5
0286 , F
0287 , T1, T2
0288 >
0289 {
0290 typedef typename F::template apply<
0291 T1, T2
0292
0293 , na, na, na
0294
0295 > type;
0296 };
0297
0298 template<
0299 typename F, typename T1, typename T2
0300 >
0301 struct apply_wrap2
0302 : apply_wrap_impl2<
0303 ::boost::mpl::aux::arity< F,2 >::value
0304 , F
0305 , T1, T2
0306 >::type
0307 {
0308 };
0309
0310 template<
0311 int N, typename F, typename T1, typename T2, typename T3
0312 >
0313 struct apply_wrap_impl3;
0314
0315 template<
0316 typename F, typename T1, typename T2, typename T3
0317 >
0318 struct apply_wrap_impl3<
0319 3
0320 , F
0321 , T1, T2, T3
0322 >
0323 {
0324 typedef typename F::template apply<
0325 T1, T2, T3
0326
0327 > type;
0328 };
0329
0330 template<
0331 typename F, typename T1, typename T2, typename T3
0332 >
0333 struct apply_wrap_impl3<
0334 4
0335 , F
0336 , T1, T2, T3
0337 >
0338 {
0339 typedef typename F::template apply<
0340 T1, T2, T3
0341
0342 , na
0343
0344 > type;
0345 };
0346
0347 template<
0348 typename F, typename T1, typename T2, typename T3
0349 >
0350 struct apply_wrap_impl3<
0351 5
0352 , F
0353 , T1, T2, T3
0354 >
0355 {
0356 typedef typename F::template apply<
0357 T1, T2, T3
0358
0359 , na, na
0360
0361 > type;
0362 };
0363
0364 template<
0365 typename F, typename T1, typename T2, typename T3
0366 >
0367 struct apply_wrap3
0368 : apply_wrap_impl3<
0369 ::boost::mpl::aux::arity< F,3 >::value
0370 , F
0371 , T1, T2, T3
0372 >::type
0373 {
0374 };
0375
0376 template<
0377 int N, typename F, typename T1, typename T2, typename T3, typename T4
0378 >
0379 struct apply_wrap_impl4;
0380
0381 template<
0382 typename F, typename T1, typename T2, typename T3, typename T4
0383 >
0384 struct apply_wrap_impl4<
0385 4
0386 , F
0387 , T1, T2, T3, T4
0388 >
0389 {
0390 typedef typename F::template apply<
0391 T1, T2, T3, T4
0392
0393 > type;
0394 };
0395
0396 template<
0397 typename F, typename T1, typename T2, typename T3, typename T4
0398 >
0399 struct apply_wrap_impl4<
0400 5
0401 , F
0402 , T1, T2, T3, T4
0403 >
0404 {
0405 typedef typename F::template apply<
0406 T1, T2, T3, T4
0407
0408 , na
0409
0410 > type;
0411 };
0412
0413 template<
0414 typename F, typename T1, typename T2, typename T3, typename T4
0415 >
0416 struct apply_wrap4
0417 : apply_wrap_impl4<
0418 ::boost::mpl::aux::arity< F,4 >::value
0419 , F
0420 , T1, T2, T3, T4
0421 >::type
0422 {
0423 };
0424
0425 template<
0426 int N, typename F, typename T1, typename T2, typename T3, typename T4
0427 , typename T5
0428 >
0429 struct apply_wrap_impl5;
0430
0431 template<
0432 typename F, typename T1, typename T2, typename T3, typename T4
0433 , typename T5
0434 >
0435 struct apply_wrap_impl5<
0436 5
0437 , F
0438 , T1, T2, T3, T4, T5
0439 >
0440 {
0441 typedef typename F::template apply<
0442 T1, T2, T3, T4, T5
0443
0444 > type;
0445 };
0446
0447 template<
0448 typename F, typename T1, typename T2, typename T3, typename T4
0449 , typename T5
0450 >
0451 struct apply_wrap5
0452 : apply_wrap_impl5<
0453 ::boost::mpl::aux::arity< F,5 >::value
0454 , F
0455 , T1, T2, T3, T4, T5
0456 >::type
0457 {
0458 };
0459
0460 }}
0461