Back to home page

EIC code displayed by LXR

 
 

    


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

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