/extlibs/Boost/include/boost/mpl/aux_/preprocessed/msvc60/map.hpp
C++ Header | 556 lines | 447 code | 101 blank | 8 comment | 0 complexity | 76c9a05add7c89c836d6d5850f7d4073 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/map.hpp" header 10// -- DO NOT modify by hand! 11 12namespace boost { namespace mpl { 13 14namespace aux { 15template< int N > 16struct map_chooser; 17 18} 19 20namespace aux { 21 22template<> 23struct map_chooser<0> 24{ 25 template< 26 typename T0, typename T1, typename T2, typename T3, typename T4 27 , typename T5, typename T6, typename T7, typename T8, typename T9 28 , typename T10, typename T11, typename T12, typename T13, typename T14 29 , typename T15, typename T16, typename T17, typename T18, typename T19 30 > 31 struct result_ 32 { 33 typedef map0< 34 35 >::type type; 36 37 }; 38}; 39 40} // namespace aux 41 42namespace aux { 43 44template<> 45struct map_chooser<1> 46{ 47 template< 48 typename T0, typename T1, typename T2, typename T3, typename T4 49 , typename T5, typename T6, typename T7, typename T8, typename T9 50 , typename T10, typename T11, typename T12, typename T13, typename T14 51 , typename T15, typename T16, typename T17, typename T18, typename T19 52 > 53 struct result_ 54 { 55 typedef typename map1< 56 T0 57 >::type type; 58 59 }; 60}; 61 62} // namespace aux 63 64namespace aux { 65 66template<> 67struct map_chooser<2> 68{ 69 template< 70 typename T0, typename T1, typename T2, typename T3, typename T4 71 , typename T5, typename T6, typename T7, typename T8, typename T9 72 , typename T10, typename T11, typename T12, typename T13, typename T14 73 , typename T15, typename T16, typename T17, typename T18, typename T19 74 > 75 struct result_ 76 { 77 typedef typename map2< 78 T0, T1 79 >::type type; 80 81 }; 82}; 83 84} // namespace aux 85 86namespace aux { 87 88template<> 89struct map_chooser<3> 90{ 91 template< 92 typename T0, typename T1, typename T2, typename T3, typename T4 93 , typename T5, typename T6, typename T7, typename T8, typename T9 94 , typename T10, typename T11, typename T12, typename T13, typename T14 95 , typename T15, typename T16, typename T17, typename T18, typename T19 96 > 97 struct result_ 98 { 99 typedef typename map3< 100 T0, T1, T2 101 >::type type; 102 103 }; 104}; 105 106} // namespace aux 107 108namespace aux { 109 110template<> 111struct map_chooser<4> 112{ 113 template< 114 typename T0, typename T1, typename T2, typename T3, typename T4 115 , typename T5, typename T6, typename T7, typename T8, typename T9 116 , typename T10, typename T11, typename T12, typename T13, typename T14 117 , typename T15, typename T16, typename T17, typename T18, typename T19 118 > 119 struct result_ 120 { 121 typedef typename map4< 122 T0, T1, T2, T3 123 >::type type; 124 125 }; 126}; 127 128} // namespace aux 129 130namespace aux { 131 132template<> 133struct map_chooser<5> 134{ 135 template< 136 typename T0, typename T1, typename T2, typename T3, typename T4 137 , typename T5, typename T6, typename T7, typename T8, typename T9 138 , typename T10, typename T11, typename T12, typename T13, typename T14 139 , typename T15, typename T16, typename T17, typename T18, typename T19 140 > 141 struct result_ 142 { 143 typedef typename map5< 144 T0, T1, T2, T3, T4 145 >::type type; 146 147 }; 148}; 149 150} // namespace aux 151 152namespace aux { 153 154template<> 155struct map_chooser<6> 156{ 157 template< 158 typename T0, typename T1, typename T2, typename T3, typename T4 159 , typename T5, typename T6, typename T7, typename T8, typename T9 160 , typename T10, typename T11, typename T12, typename T13, typename T14 161 , typename T15, typename T16, typename T17, typename T18, typename T19 162 > 163 struct result_ 164 { 165 typedef typename map6< 166 T0, T1, T2, T3, T4, T5 167 >::type type; 168 169 }; 170}; 171 172} // namespace aux 173 174namespace aux { 175 176template<> 177struct map_chooser<7> 178{ 179 template< 180 typename T0, typename T1, typename T2, typename T3, typename T4 181 , typename T5, typename T6, typename T7, typename T8, typename T9 182 , typename T10, typename T11, typename T12, typename T13, typename T14 183 , typename T15, typename T16, typename T17, typename T18, typename T19 184 > 185 struct result_ 186 { 187 typedef typename map7< 188 T0, T1, T2, T3, T4, T5, T6 189 >::type type; 190 191 }; 192}; 193 194} // namespace aux 195 196namespace aux { 197 198template<> 199struct map_chooser<8> 200{ 201 template< 202 typename T0, typename T1, typename T2, typename T3, typename T4 203 , typename T5, typename T6, typename T7, typename T8, typename T9 204 , typename T10, typename T11, typename T12, typename T13, typename T14 205 , typename T15, typename T16, typename T17, typename T18, typename T19 206 > 207 struct result_ 208 { 209 typedef typename map8< 210 T0, T1, T2, T3, T4, T5, T6, T7 211 >::type type; 212 213 }; 214}; 215 216} // namespace aux 217 218namespace aux { 219 220template<> 221struct map_chooser<9> 222{ 223 template< 224 typename T0, typename T1, typename T2, typename T3, typename T4 225 , typename T5, typename T6, typename T7, typename T8, typename T9 226 , typename T10, typename T11, typename T12, typename T13, typename T14 227 , typename T15, typename T16, typename T17, typename T18, typename T19 228 > 229 struct result_ 230 { 231 typedef typename map9< 232 T0, T1, T2, T3, T4, T5, T6, T7, T8 233 >::type type; 234 235 }; 236}; 237 238} // namespace aux 239 240namespace aux { 241 242template<> 243struct map_chooser<10> 244{ 245 template< 246 typename T0, typename T1, typename T2, typename T3, typename T4 247 , typename T5, typename T6, typename T7, typename T8, typename T9 248 , typename T10, typename T11, typename T12, typename T13, typename T14 249 , typename T15, typename T16, typename T17, typename T18, typename T19 250 > 251 struct result_ 252 { 253 typedef typename map10< 254 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 255 >::type type; 256 257 }; 258}; 259 260} // namespace aux 261 262namespace aux { 263 264template<> 265struct map_chooser<11> 266{ 267 template< 268 typename T0, typename T1, typename T2, typename T3, typename T4 269 , typename T5, typename T6, typename T7, typename T8, typename T9 270 , typename T10, typename T11, typename T12, typename T13, typename T14 271 , typename T15, typename T16, typename T17, typename T18, typename T19 272 > 273 struct result_ 274 { 275 typedef typename map11< 276 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 277 >::type type; 278 279 }; 280}; 281 282} // namespace aux 283 284namespace aux { 285 286template<> 287struct map_chooser<12> 288{ 289 template< 290 typename T0, typename T1, typename T2, typename T3, typename T4 291 , typename T5, typename T6, typename T7, typename T8, typename T9 292 , typename T10, typename T11, typename T12, typename T13, typename T14 293 , typename T15, typename T16, typename T17, typename T18, typename T19 294 > 295 struct result_ 296 { 297 typedef typename map12< 298 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 299 >::type type; 300 301 }; 302}; 303 304} // namespace aux 305 306namespace aux { 307 308template<> 309struct map_chooser<13> 310{ 311 template< 312 typename T0, typename T1, typename T2, typename T3, typename T4 313 , typename T5, typename T6, typename T7, typename T8, typename T9 314 , typename T10, typename T11, typename T12, typename T13, typename T14 315 , typename T15, typename T16, typename T17, typename T18, typename T19 316 > 317 struct result_ 318 { 319 typedef typename map13< 320 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 321 >::type type; 322 323 }; 324}; 325 326} // namespace aux 327 328namespace aux { 329 330template<> 331struct map_chooser<14> 332{ 333 template< 334 typename T0, typename T1, typename T2, typename T3, typename T4 335 , typename T5, typename T6, typename T7, typename T8, typename T9 336 , typename T10, typename T11, typename T12, typename T13, typename T14 337 , typename T15, typename T16, typename T17, typename T18, typename T19 338 > 339 struct result_ 340 { 341 typedef typename map14< 342 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 343 >::type type; 344 345 }; 346}; 347 348} // namespace aux 349 350namespace aux { 351 352template<> 353struct map_chooser<15> 354{ 355 template< 356 typename T0, typename T1, typename T2, typename T3, typename T4 357 , typename T5, typename T6, typename T7, typename T8, typename T9 358 , typename T10, typename T11, typename T12, typename T13, typename T14 359 , typename T15, typename T16, typename T17, typename T18, typename T19 360 > 361 struct result_ 362 { 363 typedef typename map15< 364 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 365 >::type type; 366 367 }; 368}; 369 370} // namespace aux 371 372namespace aux { 373 374template<> 375struct map_chooser<16> 376{ 377 template< 378 typename T0, typename T1, typename T2, typename T3, typename T4 379 , typename T5, typename T6, typename T7, typename T8, typename T9 380 , typename T10, typename T11, typename T12, typename T13, typename T14 381 , typename T15, typename T16, typename T17, typename T18, typename T19 382 > 383 struct result_ 384 { 385 typedef typename map16< 386 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 387 >::type type; 388 389 }; 390}; 391 392} // namespace aux 393 394namespace aux { 395 396template<> 397struct map_chooser<17> 398{ 399 template< 400 typename T0, typename T1, typename T2, typename T3, typename T4 401 , typename T5, typename T6, typename T7, typename T8, typename T9 402 , typename T10, typename T11, typename T12, typename T13, typename T14 403 , typename T15, typename T16, typename T17, typename T18, typename T19 404 > 405 struct result_ 406 { 407 typedef typename map17< 408 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 409 >::type type; 410 411 }; 412}; 413 414} // namespace aux 415 416namespace aux { 417 418template<> 419struct map_chooser<18> 420{ 421 template< 422 typename T0, typename T1, typename T2, typename T3, typename T4 423 , typename T5, typename T6, typename T7, typename T8, typename T9 424 , typename T10, typename T11, typename T12, typename T13, typename T14 425 , typename T15, typename T16, typename T17, typename T18, typename T19 426 > 427 struct result_ 428 { 429 typedef typename map18< 430 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 431 >::type type; 432 433 }; 434}; 435 436} // namespace aux 437 438namespace aux { 439 440template<> 441struct map_chooser<19> 442{ 443 template< 444 typename T0, typename T1, typename T2, typename T3, typename T4 445 , typename T5, typename T6, typename T7, typename T8, typename T9 446 , typename T10, typename T11, typename T12, typename T13, typename T14 447 , typename T15, typename T16, typename T17, typename T18, typename T19 448 > 449 struct result_ 450 { 451 typedef typename map19< 452 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 453 >::type type; 454 455 }; 456}; 457 458} // namespace aux 459 460namespace aux { 461 462template<> 463struct map_chooser<20> 464{ 465 template< 466 typename T0, typename T1, typename T2, typename T3, typename T4 467 , typename T5, typename T6, typename T7, typename T8, typename T9 468 , typename T10, typename T11, typename T12, typename T13, typename T14 469 , typename T15, typename T16, typename T17, typename T18, typename T19 470 > 471 struct result_ 472 { 473 typedef typename map20< 474 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 475 >::type type; 476 477 }; 478}; 479 480} // namespace aux 481 482namespace aux { 483 484template< typename T > 485struct is_map_arg 486{ 487 BOOST_STATIC_CONSTANT(bool, value = true); 488}; 489 490template<> 491struct is_map_arg<na> 492{ 493 BOOST_STATIC_CONSTANT(bool, value = false); 494}; 495 496template< 497 typename T1, typename T2, typename T3, typename T4, typename T5 498 , typename T6, typename T7, typename T8, typename T9, typename T10 499 , typename T11, typename T12, typename T13, typename T14, typename T15 500 , typename T16, typename T17, typename T18, typename T19, typename T20 501 > 502struct map_count_args 503{ 504 BOOST_STATIC_CONSTANT(int, value = 505 is_map_arg<T1>::value + is_map_arg<T2>::value 506 + is_map_arg<T3>::value + is_map_arg<T4>::value 507 + is_map_arg<T5>::value + is_map_arg<T6>::value 508 + is_map_arg<T7>::value + is_map_arg<T8>::value 509 + is_map_arg<T9>::value + is_map_arg<T10>::value 510 + is_map_arg<T11>::value + is_map_arg<T12>::value 511 + is_map_arg<T13>::value + is_map_arg<T14>::value 512 + is_map_arg<T15>::value + is_map_arg<T16>::value 513 + is_map_arg<T17>::value + is_map_arg<T18>::value 514 + is_map_arg<T19>::value + is_map_arg<T20>::value 515 ); 516 517}; 518 519template< 520 typename T0, typename T1, typename T2, typename T3, typename T4 521 , typename T5, typename T6, typename T7, typename T8, typename T9 522 , typename T10, typename T11, typename T12, typename T13, typename T14 523 , typename T15, typename T16, typename T17, typename T18, typename T19 524 > 525struct map_impl 526{ 527 typedef aux::map_count_args< 528 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 529 > arg_num_; 530 531 typedef typename aux::map_chooser< arg_num_::value > 532 ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type; 533}; 534 535} // namespace aux 536 537template< 538 typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na 539 , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na 540 , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na 541 , typename T12 = na, typename T13 = na, typename T14 = na 542 , typename T15 = na, typename T16 = na, typename T17 = na 543 , typename T18 = na, typename T19 = na 544 > 545struct map 546 : aux::map_impl< 547 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 548 >::type 549{ 550 typedef typename aux::map_impl< 551 T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 552 >::type type; 553}; 554 555}} 556