TrinityCore
UF::OptionalUpdateFieldBase< T > Class Template Reference

#include <UpdateField.h>

+ Inheritance diagram for UF::OptionalUpdateFieldBase< T >:

Public Types

using value_type = T
 
using IsLarge = std::integral_constant< bool, sizeof(void *) *3< sizeof(T)>
 
using StorageType = std::conditional_t< IsLarge::value, std::unique_ptr< T >, Optional< T > >
 

Public Member Functions

 ~OptionalUpdateFieldBase ()
 
bool has_value () const
 
 operator T const & () const
 
T const * operator-> () const
 
T const & operator* () const
 

Private Member Functions

void ConstructValue ()
 
void ConstructValue (std::false_type)
 
void ConstructValue (std::true_type)
 
void DestroyValue ()
 

Private Attributes

StorageType _value = { }
 

Friends

template<typename F , bool PublicSet>
struct MutableFieldReference
 
template<typename F , bool PublicSet>
struct MutableNestedFieldReference
 
template<std::size_t Bits>
class HasChangesMask
 
template<typename F >
struct OptionalUpdateFieldSetter
 

Detailed Description

template<typename T>
class UF::OptionalUpdateFieldBase< T >

Definition at line 923 of file UpdateField.h.

Member Typedef Documentation

◆ IsLarge

template<typename T >
using UF::OptionalUpdateFieldBase< T >::IsLarge = std::integral_constant<bool, sizeof(void*) * 3 < sizeof(T)>

Definition at line 939 of file UpdateField.h.

◆ StorageType

template<typename T >
using UF::OptionalUpdateFieldBase< T >::StorageType = std::conditional_t<IsLarge::value, std::unique_ptr<T>, Optional<T> >

Definition at line 940 of file UpdateField.h.

◆ value_type

template<typename T >
using UF::OptionalUpdateFieldBase< T >::value_type = T

Definition at line 938 of file UpdateField.h.

Constructor & Destructor Documentation

◆ ~OptionalUpdateFieldBase()

template<typename T >
UF::OptionalUpdateFieldBase< T >::~OptionalUpdateFieldBase ( )
inline

Definition at line 942 of file UpdateField.h.

+ Here is the call graph for this function:

Member Function Documentation

◆ ConstructValue() [1/3]

template<typename T >
void UF::OptionalUpdateFieldBase< T >::ConstructValue ( )
inlineprivate

Definition at line 966 of file UpdateField.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ConstructValue() [2/3]

template<typename T >
void UF::OptionalUpdateFieldBase< T >::ConstructValue ( std::false_type  )
inlineprivate

Definition at line 971 of file UpdateField.h.

◆ ConstructValue() [3/3]

template<typename T >
void UF::OptionalUpdateFieldBase< T >::ConstructValue ( std::true_type  )
inlineprivate

Definition at line 976 of file UpdateField.h.

◆ DestroyValue()

template<typename T >
void UF::OptionalUpdateFieldBase< T >::DestroyValue ( )
inlineprivate

Definition at line 981 of file UpdateField.h.

+ Here is the caller graph for this function:

◆ has_value()

template<typename T >
bool UF::OptionalUpdateFieldBase< T >::has_value ( ) const
inline

Definition at line 947 of file UpdateField.h.

+ Here is the caller graph for this function:

◆ operator T const &()

template<typename T >
UF::OptionalUpdateFieldBase< T >::operator T const & ( ) const
inline

Definition at line 952 of file UpdateField.h.

◆ operator*()

template<typename T >
T const & UF::OptionalUpdateFieldBase< T >::operator* ( ) const
inline

Definition at line 960 of file UpdateField.h.

◆ operator->()

template<typename T >
T const * UF::OptionalUpdateFieldBase< T >::operator-> ( ) const
inline

Definition at line 956 of file UpdateField.h.

Friends And Related Function Documentation

◆ HasChangesMask

template<typename T >
template<std::size_t Bits>
friend class HasChangesMask
friend

Definition at line 932 of file UpdateField.h.

◆ MutableFieldReference

template<typename T >
template<typename F , bool PublicSet>
friend struct MutableFieldReference
friend

Definition at line 926 of file UpdateField.h.

◆ MutableNestedFieldReference

template<typename T >
template<typename F , bool PublicSet>
friend struct MutableNestedFieldReference
friend

Definition at line 929 of file UpdateField.h.

◆ OptionalUpdateFieldSetter

template<typename T >
template<typename F >
friend struct OptionalUpdateFieldSetter
friend

Definition at line 935 of file UpdateField.h.

Member Data Documentation

◆ _value

template<typename T >
StorageType UF::OptionalUpdateFieldBase< T >::_value = { }
private

Definition at line 986 of file UpdateField.h.


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