template<typename T1, typename T2 = internal_variant_utils::EmptyType<2>, typename T3 = internal_variant_utils::EmptyType<3>, typename T4 = internal_variant_utils::EmptyType<4>, typename T5 = internal_variant_utils::EmptyType<5>, typename T6 = internal_variant_utils::EmptyType<6>, typename T7 = internal_variant_utils::EmptyType<7>, typename T8 = internal_variant_utils::EmptyType<8>, typename T9 = internal_variant_utils::EmptyType<9>, typename T10 = internal_variant_utils::EmptyType<10>, typename T11 = internal_variant_utils::EmptyType<11>, typename T12 = internal_variant_utils::EmptyType<12>, typename T13 = internal_variant_utils::EmptyType<13>, typename T14 = internal_variant_utils::EmptyType<14>, typename T15 = internal_variant_utils::EmptyType<15>, typename T16 = internal_variant_utils::EmptyType<16>, typename T17 = internal_variant_utils::EmptyType<17>, typename T18 = internal_variant_utils::EmptyType<18>, typename T19 = internal_variant_utils::EmptyType<19>, typename T20 = internal_variant_utils::EmptyType<20>, typename T21 = internal_variant_utils::EmptyType<21>, typename T22 = internal_variant_utils::EmptyType<22>, typename T23 = internal_variant_utils::EmptyType<23>, typename T24 = internal_variant_utils::EmptyType<24>, typename T25 = internal_variant_utils::EmptyType<25>, typename T26 = internal_variant_utils::EmptyType<26>, typename T27 = internal_variant_utils::EmptyType<27>, typename T28 = internal_variant_utils::EmptyType<28>, typename T29 = internal_variant_utils::EmptyType<29>, typename T30 = internal_variant_utils::EmptyType<30>, typename T31 = internal_variant_utils::EmptyType<31>, typename T32 = internal_variant_utils::EmptyType<32>, typename T33 = internal_variant_utils::EmptyType<33>, typename T34 = internal_variant_utils::EmptyType<34>, typename T35 = internal_variant_utils::EmptyType<35>, typename T36 = internal_variant_utils::EmptyType<36>, typename T37 = internal_variant_utils::EmptyType<37>, typename T38 = internal_variant_utils::EmptyType<38>, typename T39 = internal_variant_utils::EmptyType<39>, typename T40 = internal_variant_utils::EmptyType<40>>
struct ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor
ArrayAccessor lets callers use operator[] with a Variant in most simple cases, as opposed to using the SetValueAt(i) and GetValueAt(i) functions above.
The accessor acts as a proxy between the array operator below on the Variant and the actual getting, setting, or comparison of the value. Note that in some cases a static_cast is required for the accessor to know the array type of the underlying Variant. Examples: Variant<int, double> v; const float f = 10.f; v.InitArray<int>(Allocator(NULL), 2); v[0] = 10; v[1] = static_cast<int>(f); const int i = v[0]; const float f2 = static_cast<float>(v[1]);
Definition at line 413 of file variant.h.
template<typename T1, typename T2 = internal_variant_utils::EmptyType<2>, typename T3 = internal_variant_utils::EmptyType<3>, typename T4 = internal_variant_utils::EmptyType<4>, typename T5 = internal_variant_utils::EmptyType<5>, typename T6 = internal_variant_utils::EmptyType<6>, typename T7 = internal_variant_utils::EmptyType<7>, typename T8 = internal_variant_utils::EmptyType<8>, typename T9 = internal_variant_utils::EmptyType<9>, typename T10 = internal_variant_utils::EmptyType<10>, typename T11 = internal_variant_utils::EmptyType<11>, typename T12 = internal_variant_utils::EmptyType<12>, typename T13 = internal_variant_utils::EmptyType<13>, typename T14 = internal_variant_utils::EmptyType<14>, typename T15 = internal_variant_utils::EmptyType<15>, typename T16 = internal_variant_utils::EmptyType<16>, typename T17 = internal_variant_utils::EmptyType<17>, typename T18 = internal_variant_utils::EmptyType<18>, typename T19 = internal_variant_utils::EmptyType<19>, typename T20 = internal_variant_utils::EmptyType<20>, typename T21 = internal_variant_utils::EmptyType<21>, typename T22 = internal_variant_utils::EmptyType<22>, typename T23 = internal_variant_utils::EmptyType<23>, typename T24 = internal_variant_utils::EmptyType<24>, typename T25 = internal_variant_utils::EmptyType<25>, typename T26 = internal_variant_utils::EmptyType<26>, typename T27 = internal_variant_utils::EmptyType<27>, typename T28 = internal_variant_utils::EmptyType<28>, typename T29 = internal_variant_utils::EmptyType<29>, typename T30 = internal_variant_utils::EmptyType<30>, typename T31 = internal_variant_utils::EmptyType<31>, typename T32 = internal_variant_utils::EmptyType<32>, typename T33 = internal_variant_utils::EmptyType<33>, typename T34 = internal_variant_utils::EmptyType<34>, typename T35 = internal_variant_utils::EmptyType<35>, typename T36 = internal_variant_utils::EmptyType<36>, typename T37 = internal_variant_utils::EmptyType<37>, typename T38 = internal_variant_utils::EmptyType<38>, typename T39 = internal_variant_utils::EmptyType<39>, typename T40 = internal_variant_utils::EmptyType<40>>
ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::ArrayAccessor |
( |
Variant * |
v, |
|
|
size_t |
i |
|
) |
| |
|
inline |
template<typename T1, typename T2 = internal_variant_utils::EmptyType<2>, typename T3 = internal_variant_utils::EmptyType<3>, typename T4 = internal_variant_utils::EmptyType<4>, typename T5 = internal_variant_utils::EmptyType<5>, typename T6 = internal_variant_utils::EmptyType<6>, typename T7 = internal_variant_utils::EmptyType<7>, typename T8 = internal_variant_utils::EmptyType<8>, typename T9 = internal_variant_utils::EmptyType<9>, typename T10 = internal_variant_utils::EmptyType<10>, typename T11 = internal_variant_utils::EmptyType<11>, typename T12 = internal_variant_utils::EmptyType<12>, typename T13 = internal_variant_utils::EmptyType<13>, typename T14 = internal_variant_utils::EmptyType<14>, typename T15 = internal_variant_utils::EmptyType<15>, typename T16 = internal_variant_utils::EmptyType<16>, typename T17 = internal_variant_utils::EmptyType<17>, typename T18 = internal_variant_utils::EmptyType<18>, typename T19 = internal_variant_utils::EmptyType<19>, typename T20 = internal_variant_utils::EmptyType<20>, typename T21 = internal_variant_utils::EmptyType<21>, typename T22 = internal_variant_utils::EmptyType<22>, typename T23 = internal_variant_utils::EmptyType<23>, typename T24 = internal_variant_utils::EmptyType<24>, typename T25 = internal_variant_utils::EmptyType<25>, typename T26 = internal_variant_utils::EmptyType<26>, typename T27 = internal_variant_utils::EmptyType<27>, typename T28 = internal_variant_utils::EmptyType<28>, typename T29 = internal_variant_utils::EmptyType<29>, typename T30 = internal_variant_utils::EmptyType<30>, typename T31 = internal_variant_utils::EmptyType<31>, typename T32 = internal_variant_utils::EmptyType<32>, typename T33 = internal_variant_utils::EmptyType<33>, typename T34 = internal_variant_utils::EmptyType<34>, typename T35 = internal_variant_utils::EmptyType<35>, typename T36 = internal_variant_utils::EmptyType<36>, typename T37 = internal_variant_utils::EmptyType<37>, typename T38 = internal_variant_utils::EmptyType<38>, typename T39 = internal_variant_utils::EmptyType<39>, typename T40 = internal_variant_utils::EmptyType<40>>
template<typename T >
ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::operator const T |
( |
| ) |
const |
|
inline |
Definition at line 416 of file variant.h.
References ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::i, and ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::variant_.
template<typename T1, typename T2 = internal_variant_utils::EmptyType<2>, typename T3 = internal_variant_utils::EmptyType<3>, typename T4 = internal_variant_utils::EmptyType<4>, typename T5 = internal_variant_utils::EmptyType<5>, typename T6 = internal_variant_utils::EmptyType<6>, typename T7 = internal_variant_utils::EmptyType<7>, typename T8 = internal_variant_utils::EmptyType<8>, typename T9 = internal_variant_utils::EmptyType<9>, typename T10 = internal_variant_utils::EmptyType<10>, typename T11 = internal_variant_utils::EmptyType<11>, typename T12 = internal_variant_utils::EmptyType<12>, typename T13 = internal_variant_utils::EmptyType<13>, typename T14 = internal_variant_utils::EmptyType<14>, typename T15 = internal_variant_utils::EmptyType<15>, typename T16 = internal_variant_utils::EmptyType<16>, typename T17 = internal_variant_utils::EmptyType<17>, typename T18 = internal_variant_utils::EmptyType<18>, typename T19 = internal_variant_utils::EmptyType<19>, typename T20 = internal_variant_utils::EmptyType<20>, typename T21 = internal_variant_utils::EmptyType<21>, typename T22 = internal_variant_utils::EmptyType<22>, typename T23 = internal_variant_utils::EmptyType<23>, typename T24 = internal_variant_utils::EmptyType<24>, typename T25 = internal_variant_utils::EmptyType<25>, typename T26 = internal_variant_utils::EmptyType<26>, typename T27 = internal_variant_utils::EmptyType<27>, typename T28 = internal_variant_utils::EmptyType<28>, typename T29 = internal_variant_utils::EmptyType<29>, typename T30 = internal_variant_utils::EmptyType<30>, typename T31 = internal_variant_utils::EmptyType<31>, typename T32 = internal_variant_utils::EmptyType<32>, typename T33 = internal_variant_utils::EmptyType<33>, typename T34 = internal_variant_utils::EmptyType<34>, typename T35 = internal_variant_utils::EmptyType<35>, typename T36 = internal_variant_utils::EmptyType<36>, typename T37 = internal_variant_utils::EmptyType<37>, typename T38 = internal_variant_utils::EmptyType<38>, typename T39 = internal_variant_utils::EmptyType<39>, typename T40 = internal_variant_utils::EmptyType<40>>
template<typename T >
void ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::operator= |
( |
const T & |
value | ) |
|
|
inline |
Definition at line 420 of file variant.h.
References ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::i, ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::SetValueAt(), and ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::variant_.
template<typename T1, typename T2 = internal_variant_utils::EmptyType<2>, typename T3 = internal_variant_utils::EmptyType<3>, typename T4 = internal_variant_utils::EmptyType<4>, typename T5 = internal_variant_utils::EmptyType<5>, typename T6 = internal_variant_utils::EmptyType<6>, typename T7 = internal_variant_utils::EmptyType<7>, typename T8 = internal_variant_utils::EmptyType<8>, typename T9 = internal_variant_utils::EmptyType<9>, typename T10 = internal_variant_utils::EmptyType<10>, typename T11 = internal_variant_utils::EmptyType<11>, typename T12 = internal_variant_utils::EmptyType<12>, typename T13 = internal_variant_utils::EmptyType<13>, typename T14 = internal_variant_utils::EmptyType<14>, typename T15 = internal_variant_utils::EmptyType<15>, typename T16 = internal_variant_utils::EmptyType<16>, typename T17 = internal_variant_utils::EmptyType<17>, typename T18 = internal_variant_utils::EmptyType<18>, typename T19 = internal_variant_utils::EmptyType<19>, typename T20 = internal_variant_utils::EmptyType<20>, typename T21 = internal_variant_utils::EmptyType<21>, typename T22 = internal_variant_utils::EmptyType<22>, typename T23 = internal_variant_utils::EmptyType<23>, typename T24 = internal_variant_utils::EmptyType<24>, typename T25 = internal_variant_utils::EmptyType<25>, typename T26 = internal_variant_utils::EmptyType<26>, typename T27 = internal_variant_utils::EmptyType<27>, typename T28 = internal_variant_utils::EmptyType<28>, typename T29 = internal_variant_utils::EmptyType<29>, typename T30 = internal_variant_utils::EmptyType<30>, typename T31 = internal_variant_utils::EmptyType<31>, typename T32 = internal_variant_utils::EmptyType<32>, typename T33 = internal_variant_utils::EmptyType<33>, typename T34 = internal_variant_utils::EmptyType<34>, typename T35 = internal_variant_utils::EmptyType<35>, typename T36 = internal_variant_utils::EmptyType<36>, typename T37 = internal_variant_utils::EmptyType<37>, typename T38 = internal_variant_utils::EmptyType<38>, typename T39 = internal_variant_utils::EmptyType<39>, typename T40 = internal_variant_utils::EmptyType<40>>
template<typename T >
bool ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::operator== |
( |
const T & |
value | ) |
const |
|
inline |
Definition at line 424 of file variant.h.
References ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::i, and ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::variant_.
template<typename T1, typename T2 = internal_variant_utils::EmptyType<2>, typename T3 = internal_variant_utils::EmptyType<3>, typename T4 = internal_variant_utils::EmptyType<4>, typename T5 = internal_variant_utils::EmptyType<5>, typename T6 = internal_variant_utils::EmptyType<6>, typename T7 = internal_variant_utils::EmptyType<7>, typename T8 = internal_variant_utils::EmptyType<8>, typename T9 = internal_variant_utils::EmptyType<9>, typename T10 = internal_variant_utils::EmptyType<10>, typename T11 = internal_variant_utils::EmptyType<11>, typename T12 = internal_variant_utils::EmptyType<12>, typename T13 = internal_variant_utils::EmptyType<13>, typename T14 = internal_variant_utils::EmptyType<14>, typename T15 = internal_variant_utils::EmptyType<15>, typename T16 = internal_variant_utils::EmptyType<16>, typename T17 = internal_variant_utils::EmptyType<17>, typename T18 = internal_variant_utils::EmptyType<18>, typename T19 = internal_variant_utils::EmptyType<19>, typename T20 = internal_variant_utils::EmptyType<20>, typename T21 = internal_variant_utils::EmptyType<21>, typename T22 = internal_variant_utils::EmptyType<22>, typename T23 = internal_variant_utils::EmptyType<23>, typename T24 = internal_variant_utils::EmptyType<24>, typename T25 = internal_variant_utils::EmptyType<25>, typename T26 = internal_variant_utils::EmptyType<26>, typename T27 = internal_variant_utils::EmptyType<27>, typename T28 = internal_variant_utils::EmptyType<28>, typename T29 = internal_variant_utils::EmptyType<29>, typename T30 = internal_variant_utils::EmptyType<30>, typename T31 = internal_variant_utils::EmptyType<31>, typename T32 = internal_variant_utils::EmptyType<32>, typename T33 = internal_variant_utils::EmptyType<33>, typename T34 = internal_variant_utils::EmptyType<34>, typename T35 = internal_variant_utils::EmptyType<35>, typename T36 = internal_variant_utils::EmptyType<36>, typename T37 = internal_variant_utils::EmptyType<37>, typename T38 = internal_variant_utils::EmptyType<38>, typename T39 = internal_variant_utils::EmptyType<39>, typename T40 = internal_variant_utils::EmptyType<40>>
size_t ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::i |
Definition at line 429 of file variant.h.
Referenced by ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::operator const T(), ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::operator=(), and ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::operator==().
template<typename T1, typename T2 = internal_variant_utils::EmptyType<2>, typename T3 = internal_variant_utils::EmptyType<3>, typename T4 = internal_variant_utils::EmptyType<4>, typename T5 = internal_variant_utils::EmptyType<5>, typename T6 = internal_variant_utils::EmptyType<6>, typename T7 = internal_variant_utils::EmptyType<7>, typename T8 = internal_variant_utils::EmptyType<8>, typename T9 = internal_variant_utils::EmptyType<9>, typename T10 = internal_variant_utils::EmptyType<10>, typename T11 = internal_variant_utils::EmptyType<11>, typename T12 = internal_variant_utils::EmptyType<12>, typename T13 = internal_variant_utils::EmptyType<13>, typename T14 = internal_variant_utils::EmptyType<14>, typename T15 = internal_variant_utils::EmptyType<15>, typename T16 = internal_variant_utils::EmptyType<16>, typename T17 = internal_variant_utils::EmptyType<17>, typename T18 = internal_variant_utils::EmptyType<18>, typename T19 = internal_variant_utils::EmptyType<19>, typename T20 = internal_variant_utils::EmptyType<20>, typename T21 = internal_variant_utils::EmptyType<21>, typename T22 = internal_variant_utils::EmptyType<22>, typename T23 = internal_variant_utils::EmptyType<23>, typename T24 = internal_variant_utils::EmptyType<24>, typename T25 = internal_variant_utils::EmptyType<25>, typename T26 = internal_variant_utils::EmptyType<26>, typename T27 = internal_variant_utils::EmptyType<27>, typename T28 = internal_variant_utils::EmptyType<28>, typename T29 = internal_variant_utils::EmptyType<29>, typename T30 = internal_variant_utils::EmptyType<30>, typename T31 = internal_variant_utils::EmptyType<31>, typename T32 = internal_variant_utils::EmptyType<32>, typename T33 = internal_variant_utils::EmptyType<33>, typename T34 = internal_variant_utils::EmptyType<34>, typename T35 = internal_variant_utils::EmptyType<35>, typename T36 = internal_variant_utils::EmptyType<36>, typename T37 = internal_variant_utils::EmptyType<37>, typename T38 = internal_variant_utils::EmptyType<38>, typename T39 = internal_variant_utils::EmptyType<39>, typename T40 = internal_variant_utils::EmptyType<40>>
Variant* ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::variant_ |
Definition at line 428 of file variant.h.
Referenced by ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::operator const T(), ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::operator=(), and ion::base::Variant< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40 >::ArrayAccessor::operator==().