... | ... |
@@ -429,66 +429,66 @@ |
429 | 429 |
int flag; |
430 | 430 |
}; |
431 | 431 |
|
432 | 432 |
namespace _variant_bits { |
433 | 433 |
|
434 | 434 |
template <int _index, typename _List> |
435 | 435 |
struct Get { |
436 | 436 |
typedef typename Get<_index - 1, typename _List::Next>::Type Type; |
437 | 437 |
}; |
438 | 438 |
|
439 | 439 |
template <typename _List> |
440 | 440 |
struct Get<0, _List> { |
441 | 441 |
typedef typename _List::Type Type; |
442 | 442 |
}; |
443 | 443 |
|
444 | 444 |
struct List {}; |
445 | 445 |
|
446 | 446 |
template <typename _Type, typename _List> |
447 | 447 |
struct Insert { |
448 | 448 |
typedef _List Next; |
449 | 449 |
typedef _Type Type; |
450 | 450 |
}; |
451 | 451 |
|
452 | 452 |
template <int _idx, typename _T0, typename _T1, typename _T2, |
453 |
typename _T3, typename |
|
453 |
typename _T3, typename _T4, typename _T5, typename _T6, |
|
454 | 454 |
typename _T7, typename _T8, typename _T9> |
455 | 455 |
struct Mapper { |
456 | 456 |
typedef List L10; |
457 | 457 |
typedef Insert<_T9, L10> L9; |
458 | 458 |
typedef Insert<_T8, L9> L8; |
459 | 459 |
typedef Insert<_T7, L8> L7; |
460 | 460 |
typedef Insert<_T6, L7> L6; |
461 | 461 |
typedef Insert<_T5, L6> L5; |
462 | 462 |
typedef Insert<_T4, L5> L4; |
463 | 463 |
typedef Insert<_T3, L4> L3; |
464 | 464 |
typedef Insert<_T2, L3> L2; |
465 | 465 |
typedef Insert<_T1, L2> L1; |
466 | 466 |
typedef Insert<_T0, L1> L0; |
467 | 467 |
typedef typename Get<_idx, L0>::Type Type; |
468 | 468 |
}; |
469 | 469 |
|
470 | 470 |
} |
471 | 471 |
|
472 | 472 |
/// \brief Helper class for Variant |
473 | 473 |
/// |
474 | 474 |
/// Helper class to define type mappings for Variant. This class |
475 | 475 |
/// converts the template parameters to be mappable by integer. |
476 | 476 |
/// \see Variant |
477 | 477 |
template < |
478 | 478 |
typename _T0, |
479 | 479 |
typename _T1 = void, typename _T2 = void, typename _T3 = void, |
480 |
typename |
|
480 |
typename _T4 = void, typename _T5 = void, typename _T6 = void, |
|
481 | 481 |
typename _T7 = void, typename _T8 = void, typename _T9 = void> |
482 | 482 |
struct VariantTypeMap { |
483 | 483 |
template <int _idx> |
484 | 484 |
struct Map { |
485 | 485 |
typedef typename _variant_bits:: |
486 | 486 |
Mapper<_idx, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9>::Type |
487 | 487 |
Type; |
488 | 488 |
}; |
489 | 489 |
}; |
490 | 490 |
|
491 | 491 |
} |
492 | 492 |
|
493 | 493 |
|
494 | 494 |
#endif |
0 comments (0 inline)