16#define TEMPLATE_PARAMETERS2(X,Y) X,Y
49template<
typename TypeA,
typename TypeB = FNull,
typename TypeC = FNull,
typename TypeD = FNull,
typename TypeE = FNull,
typename TypeF = FNull>
56 : CurrentSubtypeIndex(
uint8_t(-1))
61 : CurrentSubtypeIndex(
uint8_t(-1))
68 : CurrentSubtypeIndex(
uint8_t(-1))
75 : CurrentSubtypeIndex(
uint8_t(-1))
82 : CurrentSubtypeIndex(
uint8_t(-1))
89 : CurrentSubtypeIndex(
uint8_t(-1))
96 : CurrentSubtypeIndex(
uint8_t(-1))
103 : CurrentSubtypeIndex(
uint8_t(-1))
116 template<
typename Subtype>
128 template<
typename Subtype>
139 CurrentSubtypeIndex =
uint8_t(-1);
147 template<
typename Subtype>
162 template<
typename Subtype>
177 template<
typename Subtype>
195 return CurrentSubtypeIndex;
201 switch (CurrentSubtypeIndex)
210 default: FatalErrorUndefinedSubtype();
break;
217 switch (
Other.CurrentSubtypeIndex)
226 default: FatalErrorUndefinedSubtype();
break;
235 if (CurrentSubtypeIndex ==
Other.CurrentSubtypeIndex)
237 switch (CurrentSubtypeIndex)
246 default: FatalErrorUndefinedSubtype();
break;
270 template<
typename Subtype>
271 Subtype& InitSubtype()
278 template<
typename Subtype,
typename Po
interType>
279 static void GetSubtypeIndexAndReference(
324 "Type is not subtype of union.");
330 static void FatalErrorUndefinedSubtype()
#define NULL
Definition oodle2base.h:134
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ULANG_ERRORF(format,...)
Definition Common.h:289
#define ULANG_ASSERTF(expr, format,...)
Definition Common.h:290
#define TEMPLATE_PARAMETERS2(X, Y)
Definition UnrealTemplate.h:500
bool operator!=(const FNull &) const
Definition Union.h:37
bool operator==(const FNull &) const
Definition Union.h:32
TUnion(typename TCallTraits< TypeB >::ParamType InValue, TDisambiguater< 1 > Disambiguater=TDisambiguater< 1 >())
Definition Union.h:67
TUnion()
Definition Union.h:55
TTypeCompatibleBytes< TypeC > C
Definition Union.h:260
TTypeCompatibleBytes< TypeB > B
Definition Union.h:259
TUnion(typename TCallTraits< TypeF >::ParamType InValue, TDisambiguater< 5 > Disambiguater=TDisambiguater< 5 >())
Definition Union.h:95
Subtype * SetSubtype(typename TCallTraits< Subtype >::ParamType NewValue)
Definition Union.h:178
TTypeCompatibleBytes< TypeD > D
Definition Union.h:261
bool operator==(const TUnion &Other) const
Definition Union.h:233
TUnion(typename TCallTraits< TypeD >::ParamType InValue, TDisambiguater< 3 > Disambiguater=TDisambiguater< 3 >())
Definition Union.h:81
bool HasSubtype() const
Definition Union.h:117
TUnion(const TUnion &Other)
Definition Union.h:102
TTypeCompatibleBytes< TypeE > E
Definition Union.h:262
TUnion(typename TCallTraits< TypeA >::ParamType InValue, TDisambiguater< 0 > Disambiguater=TDisambiguater< 0 >())
Definition Union.h:60
Subtype & GetSubtype()
Definition Union.h:163
TTypeCompatibleBytes< TypeA > A
Definition Union.h:258
const Subtype & GetSubtype() const
Definition Union.h:148
TUnion(typename TCallTraits< TypeC >::ParamType InValue, TDisambiguater< 2 > Disambiguater=TDisambiguater< 2 >())
Definition Union.h:74
void ResetSubtype()
Definition Union.h:129
TUnion(typename TCallTraits< TypeE >::ParamType InValue, TDisambiguater< 4 > Disambiguater=TDisambiguater< 4 >())
Definition Union.h:88
void Reset()
Definition Union.h:199
TTypeCompatibleBytes< TypeF > F
Definition Union.h:263
TUnion & operator=(const TUnion &Other)
Definition Union.h:214
~TUnion()
Definition Union.h:109
uint8_t GetCurrentSubtypeIndex() const
Definition Union.h:193
Definition VVMEngineEnvironment.h:23
@ Value
Definition TypeTraits.h:37
typename TCallTraitsParamTypeHelper< T, PassByValue >::ParamType ParamType
Definition TypeTraits.h:378
TDisambiguater()
Definition Union.h:24