UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TNoDestroy< T > Union Template Reference

#include <NoDestroy.h>

Public Types

using ElementType = T
 

Public Member Functions

template<typename... ArgTypes>
consteval TNoDestroy (ENoDestroyConstEval, ArgTypes &&... InArgs)
 
template<typename... ArgTypes>
constexpr TNoDestroy (ArgTypes &&... InArgs)
 
 UE_NONCOPYABLE (TNoDestroy)
 
constexpr ~TNoDestroy ()
 
constexpr ElementTypeoperator& ()
 
constexpr const ElementTypeoperator& () const
 
constexpr ElementTypeoperator* ()
 
constexpr const ElementTypeoperator* () const
 
ElementTypeoperator-> ()
 
const ElementTypeoperator-> () const
 

Detailed Description

template<typename T>
union TNoDestroy< T >

Type to wrap a global variable and prevent its destructor being called. The destructor of this type cannot be trivial, but it is empty and compilers should not register an atexit call for the object.

Member Typedef Documentation

◆ ElementType

template<typename T >
using TNoDestroy< T >::ElementType = T

Constructor & Destructor Documentation

◆ TNoDestroy() [1/2]

template<typename T >
template<typename... ArgTypes>
consteval TNoDestroy< T >::TNoDestroy ( ENoDestroyConstEval  ,
ArgTypes &&...  InArgs 
)
inlineexplicit

◆ TNoDestroy() [2/2]

template<typename T >
template<typename... ArgTypes>
constexpr TNoDestroy< T >::TNoDestroy ( ArgTypes &&...  InArgs)
inlineexplicitconstexpr

◆ ~TNoDestroy()

template<typename T >
constexpr TNoDestroy< T >::~TNoDestroy ( )
inlineconstexpr

Member Function Documentation

◆ operator&() [1/2]

template<typename T >
constexpr ElementType * TNoDestroy< T >::operator& ( )
inlineconstexpr

◆ operator&() [2/2]

template<typename T >
constexpr const ElementType * TNoDestroy< T >::operator& ( ) const
inlineconstexpr

◆ operator*() [1/2]

template<typename T >
constexpr ElementType & TNoDestroy< T >::operator* ( )
inlineconstexpr

◆ operator*() [2/2]

template<typename T >
constexpr const ElementType & TNoDestroy< T >::operator* ( ) const
inlineconstexpr

◆ operator->() [1/2]

template<typename T >
ElementType * TNoDestroy< T >::operator-> ( )
inline

◆ operator->() [2/2]

template<typename T >
const ElementType * TNoDestroy< T >::operator-> ( ) const
inline

◆ UE_NONCOPYABLE()

template<typename T >
TNoDestroy< T >::UE_NONCOPYABLE ( TNoDestroy< T >  )

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