UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
uLang::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 (typename TCallTraits< Subtype >::ParamType NewValue)
 
uint8_t GetCurrentSubtypeIndex () const
 
void Reset ()
 
TUnionoperator= (const TUnion &Other)
 
bool operator== (const TUnion &Other) const
 

Detailed Description

template<typename TypeA, typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
class uLang::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.

Constructor & Destructor Documentation

◆ TUnion() [1/8]

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
uLang::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>
uLang::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>
uLang::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>
uLang::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>
uLang::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>
uLang::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>
uLang::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>
uLang::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>
uLang::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_t uLang::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 & uLang::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 & uLang::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 uLang::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 & uLang::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 uLang::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 uLang::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 uLang::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.

◆ SetSubtype()

template<typename TypeA , typename TypeB = FNull, typename TypeC = FNull, typename TypeD = FNull, typename TypeE = FNull, typename TypeF = FNull>
template<typename Subtype >
Subtype * uLang::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.

Member Data Documentation

◆ A

◆ B

◆ C

◆ D

◆ E

◆ F


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