Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:40:59

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< 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