Back to home page

EIC code displayed by LXR

 
 

    


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

0001 
0002 // Copyright Aleksey Gurtovoy 2000-2004
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 "boost/mpl/set.hpp" header
0010 // -- DO NOT modify by hand!
0011 
0012 namespace boost { namespace mpl {
0013 
0014 namespace aux {
0015 template< int N >
0016 struct set_chooser;
0017 
0018 }
0019 
0020 namespace aux {
0021 
0022 template<>
0023 struct set_chooser<0>
0024 {
0025     template<
0026           typename T0, typename T1, typename T2, typename T3, typename T4
0027         , typename T5, typename T6, typename T7, typename T8, typename T9
0028         , typename T10, typename T11, typename T12, typename T13, typename T14
0029         , typename T15, typename T16, typename T17, typename T18, typename T19
0030         >
0031     struct result_
0032     {
0033         typedef set0<
0034              
0035             >::type type;
0036 
0037     };
0038 };
0039 
0040 } // namespace aux
0041 
0042 namespace aux {
0043 
0044 template<>
0045 struct set_chooser<1>
0046 {
0047     template<
0048           typename T0, typename T1, typename T2, typename T3, typename T4
0049         , typename T5, typename T6, typename T7, typename T8, typename T9
0050         , typename T10, typename T11, typename T12, typename T13, typename T14
0051         , typename T15, typename T16, typename T17, typename T18, typename T19
0052         >
0053     struct result_
0054     {
0055         typedef typename set1<
0056               T0
0057             >::type type;
0058 
0059     };
0060 };
0061 
0062 } // namespace aux
0063 
0064 namespace aux {
0065 
0066 template<>
0067 struct set_chooser<2>
0068 {
0069     template<
0070           typename T0, typename T1, typename T2, typename T3, typename T4
0071         , typename T5, typename T6, typename T7, typename T8, typename T9
0072         , typename T10, typename T11, typename T12, typename T13, typename T14
0073         , typename T15, typename T16, typename T17, typename T18, typename T19
0074         >
0075     struct result_
0076     {
0077         typedef typename set2<
0078               T0, T1
0079             >::type type;
0080 
0081     };
0082 };
0083 
0084 } // namespace aux
0085 
0086 namespace aux {
0087 
0088 template<>
0089 struct set_chooser<3>
0090 {
0091     template<
0092           typename T0, typename T1, typename T2, typename T3, typename T4
0093         , typename T5, typename T6, typename T7, typename T8, typename T9
0094         , typename T10, typename T11, typename T12, typename T13, typename T14
0095         , typename T15, typename T16, typename T17, typename T18, typename T19
0096         >
0097     struct result_
0098     {
0099         typedef typename set3<
0100               T0, T1, T2
0101             >::type type;
0102 
0103     };
0104 };
0105 
0106 } // namespace aux
0107 
0108 namespace aux {
0109 
0110 template<>
0111 struct set_chooser<4>
0112 {
0113     template<
0114           typename T0, typename T1, typename T2, typename T3, typename T4
0115         , typename T5, typename T6, typename T7, typename T8, typename T9
0116         , typename T10, typename T11, typename T12, typename T13, typename T14
0117         , typename T15, typename T16, typename T17, typename T18, typename T19
0118         >
0119     struct result_
0120     {
0121         typedef typename set4<
0122               T0, T1, T2, T3
0123             >::type type;
0124 
0125     };
0126 };
0127 
0128 } // namespace aux
0129 
0130 namespace aux {
0131 
0132 template<>
0133 struct set_chooser<5>
0134 {
0135     template<
0136           typename T0, typename T1, typename T2, typename T3, typename T4
0137         , typename T5, typename T6, typename T7, typename T8, typename T9
0138         , typename T10, typename T11, typename T12, typename T13, typename T14
0139         , typename T15, typename T16, typename T17, typename T18, typename T19
0140         >
0141     struct result_
0142     {
0143         typedef typename set5<
0144               T0, T1, T2, T3, T4
0145             >::type type;
0146 
0147     };
0148 };
0149 
0150 } // namespace aux
0151 
0152 namespace aux {
0153 
0154 template<>
0155 struct set_chooser<6>
0156 {
0157     template<
0158           typename T0, typename T1, typename T2, typename T3, typename T4
0159         , typename T5, typename T6, typename T7, typename T8, typename T9
0160         , typename T10, typename T11, typename T12, typename T13, typename T14
0161         , typename T15, typename T16, typename T17, typename T18, typename T19
0162         >
0163     struct result_
0164     {
0165         typedef typename set6<
0166               T0, T1, T2, T3, T4, T5
0167             >::type type;
0168 
0169     };
0170 };
0171 
0172 } // namespace aux
0173 
0174 namespace aux {
0175 
0176 template<>
0177 struct set_chooser<7>
0178 {
0179     template<
0180           typename T0, typename T1, typename T2, typename T3, typename T4
0181         , typename T5, typename T6, typename T7, typename T8, typename T9
0182         , typename T10, typename T11, typename T12, typename T13, typename T14
0183         , typename T15, typename T16, typename T17, typename T18, typename T19
0184         >
0185     struct result_
0186     {
0187         typedef typename set7<
0188               T0, T1, T2, T3, T4, T5, T6
0189             >::type type;
0190 
0191     };
0192 };
0193 
0194 } // namespace aux
0195 
0196 namespace aux {
0197 
0198 template<>
0199 struct set_chooser<8>
0200 {
0201     template<
0202           typename T0, typename T1, typename T2, typename T3, typename T4
0203         , typename T5, typename T6, typename T7, typename T8, typename T9
0204         , typename T10, typename T11, typename T12, typename T13, typename T14
0205         , typename T15, typename T16, typename T17, typename T18, typename T19
0206         >
0207     struct result_
0208     {
0209         typedef typename set8<
0210               T0, T1, T2, T3, T4, T5, T6, T7
0211             >::type type;
0212 
0213     };
0214 };
0215 
0216 } // namespace aux
0217 
0218 namespace aux {
0219 
0220 template<>
0221 struct set_chooser<9>
0222 {
0223     template<
0224           typename T0, typename T1, typename T2, typename T3, typename T4
0225         , typename T5, typename T6, typename T7, typename T8, typename T9
0226         , typename T10, typename T11, typename T12, typename T13, typename T14
0227         , typename T15, typename T16, typename T17, typename T18, typename T19
0228         >
0229     struct result_
0230     {
0231         typedef typename set9<
0232               T0, T1, T2, T3, T4, T5, T6, T7, T8
0233             >::type type;
0234 
0235     };
0236 };
0237 
0238 } // namespace aux
0239 
0240 namespace aux {
0241 
0242 template<>
0243 struct set_chooser<10>
0244 {
0245     template<
0246           typename T0, typename T1, typename T2, typename T3, typename T4
0247         , typename T5, typename T6, typename T7, typename T8, typename T9
0248         , typename T10, typename T11, typename T12, typename T13, typename T14
0249         , typename T15, typename T16, typename T17, typename T18, typename T19
0250         >
0251     struct result_
0252     {
0253         typedef typename set10<
0254               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
0255             >::type type;
0256 
0257     };
0258 };
0259 
0260 } // namespace aux
0261 
0262 namespace aux {
0263 
0264 template<>
0265 struct set_chooser<11>
0266 {
0267     template<
0268           typename T0, typename T1, typename T2, typename T3, typename T4
0269         , typename T5, typename T6, typename T7, typename T8, typename T9
0270         , typename T10, typename T11, typename T12, typename T13, typename T14
0271         , typename T15, typename T16, typename T17, typename T18, typename T19
0272         >
0273     struct result_
0274     {
0275         typedef typename set11<
0276               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
0277             >::type type;
0278 
0279     };
0280 };
0281 
0282 } // namespace aux
0283 
0284 namespace aux {
0285 
0286 template<>
0287 struct set_chooser<12>
0288 {
0289     template<
0290           typename T0, typename T1, typename T2, typename T3, typename T4
0291         , typename T5, typename T6, typename T7, typename T8, typename T9
0292         , typename T10, typename T11, typename T12, typename T13, typename T14
0293         , typename T15, typename T16, typename T17, typename T18, typename T19
0294         >
0295     struct result_
0296     {
0297         typedef typename set12<
0298               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
0299             >::type type;
0300 
0301     };
0302 };
0303 
0304 } // namespace aux
0305 
0306 namespace aux {
0307 
0308 template<>
0309 struct set_chooser<13>
0310 {
0311     template<
0312           typename T0, typename T1, typename T2, typename T3, typename T4
0313         , typename T5, typename T6, typename T7, typename T8, typename T9
0314         , typename T10, typename T11, typename T12, typename T13, typename T14
0315         , typename T15, typename T16, typename T17, typename T18, typename T19
0316         >
0317     struct result_
0318     {
0319         typedef typename set13<
0320               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
0321             >::type type;
0322 
0323     };
0324 };
0325 
0326 } // namespace aux
0327 
0328 namespace aux {
0329 
0330 template<>
0331 struct set_chooser<14>
0332 {
0333     template<
0334           typename T0, typename T1, typename T2, typename T3, typename T4
0335         , typename T5, typename T6, typename T7, typename T8, typename T9
0336         , typename T10, typename T11, typename T12, typename T13, typename T14
0337         , typename T15, typename T16, typename T17, typename T18, typename T19
0338         >
0339     struct result_
0340     {
0341         typedef typename set14<
0342               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
0343             >::type type;
0344 
0345     };
0346 };
0347 
0348 } // namespace aux
0349 
0350 namespace aux {
0351 
0352 template<>
0353 struct set_chooser<15>
0354 {
0355     template<
0356           typename T0, typename T1, typename T2, typename T3, typename T4
0357         , typename T5, typename T6, typename T7, typename T8, typename T9
0358         , typename T10, typename T11, typename T12, typename T13, typename T14
0359         , typename T15, typename T16, typename T17, typename T18, typename T19
0360         >
0361     struct result_
0362     {
0363         typedef typename set15<
0364               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
0365             >::type type;
0366 
0367     };
0368 };
0369 
0370 } // namespace aux
0371 
0372 namespace aux {
0373 
0374 template<>
0375 struct set_chooser<16>
0376 {
0377     template<
0378           typename T0, typename T1, typename T2, typename T3, typename T4
0379         , typename T5, typename T6, typename T7, typename T8, typename T9
0380         , typename T10, typename T11, typename T12, typename T13, typename T14
0381         , typename T15, typename T16, typename T17, typename T18, typename T19
0382         >
0383     struct result_
0384     {
0385         typedef typename set16<
0386               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
0387             >::type type;
0388 
0389     };
0390 };
0391 
0392 } // namespace aux
0393 
0394 namespace aux {
0395 
0396 template<>
0397 struct set_chooser<17>
0398 {
0399     template<
0400           typename T0, typename T1, typename T2, typename T3, typename T4
0401         , typename T5, typename T6, typename T7, typename T8, typename T9
0402         , typename T10, typename T11, typename T12, typename T13, typename T14
0403         , typename T15, typename T16, typename T17, typename T18, typename T19
0404         >
0405     struct result_
0406     {
0407         typedef typename set17<
0408               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
0409             >::type type;
0410 
0411     };
0412 };
0413 
0414 } // namespace aux
0415 
0416 namespace aux {
0417 
0418 template<>
0419 struct set_chooser<18>
0420 {
0421     template<
0422           typename T0, typename T1, typename T2, typename T3, typename T4
0423         , typename T5, typename T6, typename T7, typename T8, typename T9
0424         , typename T10, typename T11, typename T12, typename T13, typename T14
0425         , typename T15, typename T16, typename T17, typename T18, typename T19
0426         >
0427     struct result_
0428     {
0429         typedef typename set18<
0430               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
0431             >::type type;
0432 
0433     };
0434 };
0435 
0436 } // namespace aux
0437 
0438 namespace aux {
0439 
0440 template<>
0441 struct set_chooser<19>
0442 {
0443     template<
0444           typename T0, typename T1, typename T2, typename T3, typename T4
0445         , typename T5, typename T6, typename T7, typename T8, typename T9
0446         , typename T10, typename T11, typename T12, typename T13, typename T14
0447         , typename T15, typename T16, typename T17, typename T18, typename T19
0448         >
0449     struct result_
0450     {
0451         typedef typename set19<
0452               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
0453             >::type type;
0454 
0455     };
0456 };
0457 
0458 } // namespace aux
0459 
0460 namespace aux {
0461 
0462 template<>
0463 struct set_chooser<20>
0464 {
0465     template<
0466           typename T0, typename T1, typename T2, typename T3, typename T4
0467         , typename T5, typename T6, typename T7, typename T8, typename T9
0468         , typename T10, typename T11, typename T12, typename T13, typename T14
0469         , typename T15, typename T16, typename T17, typename T18, typename T19
0470         >
0471     struct result_
0472     {
0473         typedef typename set20<
0474               T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
0475             >::type type;
0476 
0477     };
0478 };
0479 
0480 } // namespace aux
0481 
0482 namespace aux {
0483 
0484 template< typename T >
0485 struct is_set_arg
0486 {
0487     BOOST_STATIC_CONSTANT(bool, value  = true);
0488 };
0489 
0490 template<>
0491 struct is_set_arg<na>
0492 {
0493     BOOST_STATIC_CONSTANT(bool, value  = false);
0494 };
0495 
0496 template<
0497       typename T1, typename T2, typename T3, typename T4, typename T5
0498     , typename T6, typename T7, typename T8, typename T9, typename T10
0499     , typename T11, typename T12, typename T13, typename T14, typename T15
0500     , typename T16, typename T17, typename T18, typename T19, typename T20
0501     >
0502 struct set_count_args
0503 {
0504     BOOST_STATIC_CONSTANT(int, value =
0505           is_set_arg<T1>::value + is_set_arg<T2>::value 
0506         + is_set_arg<T3>::value + is_set_arg<T4>::value 
0507         + is_set_arg<T5>::value + is_set_arg<T6>::value 
0508         + is_set_arg<T7>::value + is_set_arg<T8>::value 
0509         + is_set_arg<T9>::value + is_set_arg<T10>::value 
0510         + is_set_arg<T11>::value + is_set_arg<T12>::value 
0511         + is_set_arg<T13>::value + is_set_arg<T14>::value 
0512         + is_set_arg<T15>::value + is_set_arg<T16>::value 
0513         + is_set_arg<T17>::value + is_set_arg<T18>::value 
0514         + is_set_arg<T19>::value + is_set_arg<T20>::value
0515         );
0516 
0517 };
0518 
0519 template<
0520       typename T0, typename T1, typename T2, typename T3, typename T4
0521     , typename T5, typename T6, typename T7, typename T8, typename T9
0522     , typename T10, typename T11, typename T12, typename T13, typename T14
0523     , typename T15, typename T16, typename T17, typename T18, typename T19
0524     >
0525 struct set_impl
0526 {
0527     typedef aux::set_count_args<
0528           T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
0529         > arg_num_;
0530 
0531     typedef typename aux::set_chooser< arg_num_::value >
0532         ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
0533 };
0534 
0535 } // namespace aux
0536 
0537 template<
0538       typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
0539     , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
0540     , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
0541     , typename T12 = na, typename T13 = na, typename T14 = na
0542     , typename T15 = na, typename T16 = na, typename T17 = na
0543     , typename T18 = na, typename T19 = na
0544     >
0545 struct set
0546     : aux::set_impl<
0547           T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
0548         >::type
0549 {
0550     typedef typename aux::set_impl<
0551           T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
0552         >::type type;
0553 };
0554 
0555 }}
0556