/extlibs/Boost/include/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp
C++ Header | 534 lines | 426 code | 100 blank | 8 comment | 0 complexity | 2a32374a2234a865fd93a3c251e1f93f MD5 | raw file
1 2// Copyright Aleksey Gurtovoy 2000-2004 3// 4// Distributed under the Boost Software License, Version 1.0. 5// (See accompanying file LICENSE_1_0.txt or copy at 6// http://www.boost.org/LICENSE_1_0.txt) 7// 8 9// Preprocessed version of "boost/mpl/vector_c.hpp" header 10// -- DO NOT modify by hand! 11 12namespace boost { namespace mpl { 13 14namespace aux { 15template< int N > 16struct vector_c_chooser; 17 18} 19 20namespace aux { 21 22template<> 23struct vector_c_chooser<0> 24{ 25 template< 26 typename T, long C0, long C1, long C2, long C3, long C4, long C5 27 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 28 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 29 > 30 struct result_ 31 { 32 typedef typename vector0_c< 33 T 34 >::type type; 35 36 }; 37}; 38 39} // namespace aux 40 41namespace aux { 42 43template<> 44struct vector_c_chooser<1> 45{ 46 template< 47 typename T, long C0, long C1, long C2, long C3, long C4, long C5 48 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 49 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 50 > 51 struct result_ 52 { 53 typedef typename vector1_c< 54 T, T(C0) 55 >::type type; 56 57 }; 58}; 59 60} // namespace aux 61 62namespace aux { 63 64template<> 65struct vector_c_chooser<2> 66{ 67 template< 68 typename T, long C0, long C1, long C2, long C3, long C4, long C5 69 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 70 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 71 > 72 struct result_ 73 { 74 typedef typename vector2_c< 75 T, T(C0), T(C1) 76 >::type type; 77 78 }; 79}; 80 81} // namespace aux 82 83namespace aux { 84 85template<> 86struct vector_c_chooser<3> 87{ 88 template< 89 typename T, long C0, long C1, long C2, long C3, long C4, long C5 90 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 91 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 92 > 93 struct result_ 94 { 95 typedef typename vector3_c< 96 T, T(C0), T(C1), T(C2) 97 >::type type; 98 99 }; 100}; 101 102} // namespace aux 103 104namespace aux { 105 106template<> 107struct vector_c_chooser<4> 108{ 109 template< 110 typename T, long C0, long C1, long C2, long C3, long C4, long C5 111 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 112 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 113 > 114 struct result_ 115 { 116 typedef typename vector4_c< 117 T, T(C0), T(C1), T(C2), T(C3) 118 >::type type; 119 120 }; 121}; 122 123} // namespace aux 124 125namespace aux { 126 127template<> 128struct vector_c_chooser<5> 129{ 130 template< 131 typename T, long C0, long C1, long C2, long C3, long C4, long C5 132 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 133 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 134 > 135 struct result_ 136 { 137 typedef typename vector5_c< 138 T, T(C0), T(C1), T(C2), T(C3), T(C4) 139 >::type type; 140 141 }; 142}; 143 144} // namespace aux 145 146namespace aux { 147 148template<> 149struct vector_c_chooser<6> 150{ 151 template< 152 typename T, long C0, long C1, long C2, long C3, long C4, long C5 153 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 154 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 155 > 156 struct result_ 157 { 158 typedef typename vector6_c< 159 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) 160 >::type type; 161 162 }; 163}; 164 165} // namespace aux 166 167namespace aux { 168 169template<> 170struct vector_c_chooser<7> 171{ 172 template< 173 typename T, long C0, long C1, long C2, long C3, long C4, long C5 174 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 175 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 176 > 177 struct result_ 178 { 179 typedef typename vector7_c< 180 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) 181 >::type type; 182 183 }; 184}; 185 186} // namespace aux 187 188namespace aux { 189 190template<> 191struct vector_c_chooser<8> 192{ 193 template< 194 typename T, long C0, long C1, long C2, long C3, long C4, long C5 195 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 196 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 197 > 198 struct result_ 199 { 200 typedef typename vector8_c< 201 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) 202 >::type type; 203 204 }; 205}; 206 207} // namespace aux 208 209namespace aux { 210 211template<> 212struct vector_c_chooser<9> 213{ 214 template< 215 typename T, long C0, long C1, long C2, long C3, long C4, long C5 216 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 217 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 218 > 219 struct result_ 220 { 221 typedef typename vector9_c< 222 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) 223 >::type type; 224 225 }; 226}; 227 228} // namespace aux 229 230namespace aux { 231 232template<> 233struct vector_c_chooser<10> 234{ 235 template< 236 typename T, long C0, long C1, long C2, long C3, long C4, long C5 237 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 238 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 239 > 240 struct result_ 241 { 242 typedef typename vector10_c< 243 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) 244 >::type type; 245 246 }; 247}; 248 249} // namespace aux 250 251namespace aux { 252 253template<> 254struct vector_c_chooser<11> 255{ 256 template< 257 typename T, long C0, long C1, long C2, long C3, long C4, long C5 258 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 259 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 260 > 261 struct result_ 262 { 263 typedef typename vector11_c< 264 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) 265 >::type type; 266 267 }; 268}; 269 270} // namespace aux 271 272namespace aux { 273 274template<> 275struct vector_c_chooser<12> 276{ 277 template< 278 typename T, long C0, long C1, long C2, long C3, long C4, long C5 279 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 280 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 281 > 282 struct result_ 283 { 284 typedef typename vector12_c< 285 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) 286 >::type type; 287 288 }; 289}; 290 291} // namespace aux 292 293namespace aux { 294 295template<> 296struct vector_c_chooser<13> 297{ 298 template< 299 typename T, long C0, long C1, long C2, long C3, long C4, long C5 300 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 301 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 302 > 303 struct result_ 304 { 305 typedef typename vector13_c< 306 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) 307 >::type type; 308 309 }; 310}; 311 312} // namespace aux 313 314namespace aux { 315 316template<> 317struct vector_c_chooser<14> 318{ 319 template< 320 typename T, long C0, long C1, long C2, long C3, long C4, long C5 321 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 322 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 323 > 324 struct result_ 325 { 326 typedef typename vector14_c< 327 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) 328 >::type type; 329 330 }; 331}; 332 333} // namespace aux 334 335namespace aux { 336 337template<> 338struct vector_c_chooser<15> 339{ 340 template< 341 typename T, long C0, long C1, long C2, long C3, long C4, long C5 342 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 343 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 344 > 345 struct result_ 346 { 347 typedef typename vector15_c< 348 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) 349 >::type type; 350 351 }; 352}; 353 354} // namespace aux 355 356namespace aux { 357 358template<> 359struct vector_c_chooser<16> 360{ 361 template< 362 typename T, long C0, long C1, long C2, long C3, long C4, long C5 363 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 364 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 365 > 366 struct result_ 367 { 368 typedef typename vector16_c< 369 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) 370 >::type type; 371 372 }; 373}; 374 375} // namespace aux 376 377namespace aux { 378 379template<> 380struct vector_c_chooser<17> 381{ 382 template< 383 typename T, long C0, long C1, long C2, long C3, long C4, long C5 384 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 385 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 386 > 387 struct result_ 388 { 389 typedef typename vector17_c< 390 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) 391 >::type type; 392 393 }; 394}; 395 396} // namespace aux 397 398namespace aux { 399 400template<> 401struct vector_c_chooser<18> 402{ 403 template< 404 typename T, long C0, long C1, long C2, long C3, long C4, long C5 405 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 406 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 407 > 408 struct result_ 409 { 410 typedef typename vector18_c< 411 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) 412 >::type type; 413 414 }; 415}; 416 417} // namespace aux 418 419namespace aux { 420 421template<> 422struct vector_c_chooser<19> 423{ 424 template< 425 typename T, long C0, long C1, long C2, long C3, long C4, long C5 426 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 427 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 428 > 429 struct result_ 430 { 431 typedef typename vector19_c< 432 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) 433 >::type type; 434 435 }; 436}; 437 438} // namespace aux 439 440namespace aux { 441 442template<> 443struct vector_c_chooser<20> 444{ 445 template< 446 typename T, long C0, long C1, long C2, long C3, long C4, long C5 447 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 448 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 449 > 450 struct result_ 451 { 452 typedef typename vector20_c< 453 T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) 454 >::type type; 455 456 }; 457}; 458 459} // namespace aux 460 461namespace aux { 462 463template< long C > 464struct is_vector_c_arg 465{ 466 BOOST_STATIC_CONSTANT(bool, value = true); 467}; 468 469template<> 470struct is_vector_c_arg<LONG_MAX> 471{ 472 BOOST_STATIC_CONSTANT(bool, value = false); 473}; 474 475template< 476 long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8 477 , long C9, long C10, long C11, long C12, long C13, long C14, long C15 478 , long C16, long C17, long C18, long C19, long C20 479 > 480struct vector_c_count_args 481{ 482 BOOST_STATIC_CONSTANT(int, value = 483 is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value 484 + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value 485 + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value 486 + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value 487 + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value 488 + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value 489 + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value 490 + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value 491 + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value 492 + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value 493 ); 494 495}; 496 497template< 498 typename T, long C0, long C1, long C2, long C3, long C4, long C5 499 , long C6, long C7, long C8, long C9, long C10, long C11, long C12 500 , long C13, long C14, long C15, long C16, long C17, long C18, long C19 501 > 502struct vector_c_impl 503{ 504 typedef aux::vector_c_count_args< 505 C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 506 > arg_num_; 507 508 typedef typename aux::vector_c_chooser< arg_num_::value > 509 ::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; 510}; 511 512} // namespace aux 513 514template< 515 typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX 516 , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX 517 , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX 518 , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX 519 , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX 520 , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX 521 , long C18 = LONG_MAX, long C19 = LONG_MAX 522 > 523struct vector_c 524 : aux::vector_c_impl< 525 T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 526 >::type 527{ 528 typedef typename aux::vector_c_impl< 529 T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19 530 >::type type; 531}; 532 533}} 534