UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF > Class Template Reference

#include <Union.h>

Public Member Functions

 TUnion ()
 
 TUnion (typename TCallTraits< TypeA >::ParamType InValue, TDisambiguater< 0 > Disambiguater=TDisambiguater< 0 >())
 
 TUnion (typename TCallTraits< TypeB >::ParamType InValue, TDisambiguater< 1 > Disambiguater=TDisambiguater< 1 >())
 
 TUnion (typename TCallTraits< TypeC >::ParamType InValue, TDisambiguater< 2 > Disambiguater=TDisambiguater< 2 >())
 
 TUnion (typename TCallTraits< TypeD >::ParamType InValue, TDisambiguater< 3 > Disambiguater=TDisambiguater< 3 >())
 
 TUnion (typename TCallTraits< TypeE >::ParamType InValue, TDisambiguater< 4 > Disambiguater=TDisambiguater< 4 >())
 
 TUnion (typename TCallTraits< TypeF >::ParamType InValue, TDisambiguater< 5 > Disambiguater=TDisambiguater< 5 >())
 
 TUnion (const TUnion &Other)
 
 ~TUnion ()
 
template<typename Subtype >
bool HasSubtype () const
 
template<typename Subtype >
void ResetSubtype ()
 
template<typename Subtype >
const Subtype & GetSubtype () const
 
template<typename Subtype >
Subtype & GetSubtype ()
 
template<typename Subtype >
Subtype * SetSubtype ()
 
template<typename Subtype >
Subtype * SetSubtype (typename TCallTraits< Subtype >::ParamType NewValue)
 
uint8 GetCurrentSubtypeIndex () const
 
void Reset ()
 
TUnionoperator= (const TUnion &Other)
 
bool operator== (const TUnion &Other) const
 
void Serialize (FArchive &Ar)
 

Friends

uint32 GetTypeHash (const TUnion &Union)
 

Detailed Description

template<typename TypeA, typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
class TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >

Represents a type which is the union of several other types; i.e. it can have a value whose type is of any the union's subtypes. This differs from C union types by being type-safe, and supporting non-trivial data types as subtypes. Since a value for the union must be of a single subtype, the union stores potential values of different subtypes in overlapped memory, and keeps track of which one is currently valid.

TUnion should be considered deprecated and TVariant should be used instead for new code.

Constructor & Destructor Documentation

◆ TUnion() [1/8]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::TUnion ( )
inline

Default constructor.

◆ TUnion() [2/8]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::TUnion ( typename TCallTraits< TypeA >::ParamType  InValue,
TDisambiguater< 0 >  Disambiguater = TDisambiguater<0>() 
)
inlineexplicit

Initialization constructor.

◆ TUnion() [3/8]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::TUnion ( typename TCallTraits< TypeB >::ParamType  InValue,
TDisambiguater< 1 >  Disambiguater = TDisambiguater<1>() 
)
inlineexplicit

Initialization constructor.

◆ TUnion() [4/8]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::TUnion ( typename TCallTraits< TypeC >::ParamType  InValue,
TDisambiguater< 2 >  Disambiguater = TDisambiguater<2>() 
)
inlineexplicit

Initialization constructor.

◆ TUnion() [5/8]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::TUnion ( typename TCallTraits< TypeD >::ParamType  InValue,
TDisambiguater< 3 >  Disambiguater = TDisambiguater<3>() 
)
inlineexplicit

Initialization constructor.

◆ TUnion() [6/8]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::TUnion ( typename TCallTraits< TypeE >::ParamType  InValue,
TDisambiguater< 4 >  Disambiguater = TDisambiguater<4>() 
)
inlineexplicit

Initialization constructor.

◆ TUnion() [7/8]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::TUnion ( typename TCallTraits< TypeF >::ParamType  InValue,
TDisambiguater< 5 >  Disambiguater = TDisambiguater<5>() 
)
inlineexplicit

Initialization constructor.

◆ TUnion() [8/8]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::TUnion ( const TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF > &  Other)
inline

Copy constructor.

◆ ~TUnion()

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::~TUnion ( )
inline

Destructor.

Member Function Documentation

◆ GetCurrentSubtypeIndex()

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
uint8 TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::GetCurrentSubtypeIndex ( ) const
inline
Returns
The index corresponding to the type currently stored in this union; useful for writing switches and indexing into tables.

◆ GetSubtype() [1/2]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
template<typename Subtype >
Subtype & TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::GetSubtype ( )
inline
Returns
A reference to the union's value of the given subtype. May only be called if the union's HasSubtype()==true for the given subtype.

◆ GetSubtype() [2/2]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
template<typename Subtype >
const Subtype & TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::GetSubtype ( ) const
inline
Returns
A reference to the union's value of the given subtype. May only be called if the union's HasSubtype()==true for the given subtype.

◆ HasSubtype()

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
template<typename Subtype >
bool TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::HasSubtype ( ) const
inline
Returns
True if the union's value is of the given subtype.

◆ operator=()

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
TUnion & TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::operator= ( const TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF > &  Other)
inline

◆ operator==()

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
bool TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::operator== ( const TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF > &  Other) const
inline

Equality comparison.

◆ Reset()

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
void TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::Reset ( )
inline

Sets the union's value to NULL.

◆ ResetSubtype()

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
template<typename Subtype >
void TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::ResetSubtype ( )
inline

If the union's current value is of the given subtype, sets the union's value to a NULL value.

◆ Serialize()

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
void TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::Serialize ( FArchive Ar)
inline

◆ SetSubtype() [1/2]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
template<typename Subtype >
Subtype * TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::SetSubtype ( )
inline

Replaces the value of the union with a value of the given subtype.

◆ SetSubtype() [2/2]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
template<typename Subtype >
Subtype * TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF >::SetSubtype ( typename TCallTraits< Subtype >::ParamType  NewValue)
inline

Replaces the value of the union with a value of the given subtype.

Friends And Related Symbol Documentation

◆ GetTypeHash

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
uint32 GetTypeHash ( const TUnion< TypeA, TypeB, TypeC, TypeD, TypeE, TypeF > &  Union)
friend

Hash function.

Member Data Documentation

◆ A

◆ B

◆ C

◆ D

◆ E

◆ F


The documentation for this class was generated from the following file: