Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:41:06

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