15template<
typename ObjectType >
44 template<
typename OtherType >
72 template<
class SourceType >
88 template<
class SourceType >
191 template<
class SourceType >
209 template<
typename OtherType >
241 const ObjectType&
Get()
const
244 if( Getter.IsBound() )
251 Value = Getter.Execute();
262 const ObjectType&
Get(
const ObjectType& DefaultValue )
const
264 return bIsSet ?
Get() : DefaultValue;
316 template<
class SourceType,
typename...
VarTypes >
331 template<
class SourceType,
typename...
VarTypes >
346 template<
class SourceType,
typename...
VarTypes >
361 template<
class SourceType,
typename...
VarTypes >
376 template<
class SourceType >
429 return Getter.IsBound();
449 checkf(
IsSet(),
TEXT(
"It is an error to call Steal() on an unset TAttribute. Check IsSet() before calling Steal()."));
462 const bool bIsBound =
IsBound();
464 if ( bIsBound ==
InOther.IsBound() )
468 return Getter.GetHandle() ==
InOther.Getter.GetHandle();
499 mutable ObjectType Value;
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
decltype(auto) MakeAttributeWeakLambda(UserClass *InUserObject, LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:574
decltype(auto) MakeAttributeSPLambda(const TSharedRef< UserClass, Mode > &InUserObjectRef, LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:556
UE_FORCEINLINE_HINT TAttribute< T > MakeAttributeRaw(const SourceType *InObject, T(SourceTypeOrBase::*InMethod)(PayloadTypes...) const, typename TDecay< PayloadTypes >::Type... InputPayload)
Definition Attribute.h:515
decltype(auto) MakeAttributeLambda(LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:545
UE_FORCEINLINE_HINT TAttribute< T > MakeAttributeSP(const SourceType *InObject, T(SourceTypeOrBase::*InMethod)(PayloadTypes...) const, typename TDecay< PayloadTypes >::Type... InputPayload)
Definition Attribute.h:524
UE_FORCEINLINE_HINT TAttribute< T > MakeAttributeUObject(const SourceType *InObject, T(SourceTypeOrBase::*InMethod)(PayloadTypes...) const, typename TDecay< PayloadTypes >::Type... InputPayload)
Definition Attribute.h:535
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
typename TIdentity< T >::Type TIdentity_T
Definition Identity.h:24
ESPMode
Definition SharedPointerFwd.h:12
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition NameTypes.h:617
Definition Attribute.h:17
const ObjectType & Get() const
Definition Attribute.h:241
static TAttribute Create(const FGetter &InGetter)
Definition Attribute.h:101
void BindRaw(SourceType *InUserObject, typename FGetter::template TConstMethodPtr< SourceType, std::decay_t< VarTypes >... > InMethodPtr, VarTypes &&... Vars)
Definition Attribute.h:317
TAttribute(ObjectType &&InInitialValue)
Definition Attribute.h:57
static UE_FORCEINLINE_HINT TAttribute CreateLambda(LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:155
bool IsSet() const
Definition Attribute.h:230
const FGetter & GetBinding() const
Definition Attribute.h:437
void Bind(const FGetter &InGetter)
Definition Attribute.h:274
void BindStatic(TIdentity_T< typename FGetter::template TFuncPtr< std::decay_t< VarTypes >... > > InFuncPtr, VarTypes &&... Vars)
Definition Attribute.h:302
static UE_FORCEINLINE_HINT TAttribute CreateSP(const SourceType *InObject, ObjectType(SourceTypeOrBase::*InMethod)(PayloadTypes...) const, typename TDecay< PayloadTypes >::Type... InputPayload)
Definition Attribute.h:145
void BindUObject(SourceType *InUserObject, typename FGetter::template TConstMethodPtr< SourceType, std::decay_t< VarTypes >... > InMethodPtr, VarTypes &&... Vars)
Definition Attribute.h:362
static TAttribute Create(FGetter &&InGetter)
Definition Attribute.h:112
void Bind(FGetter &&InGetter)
Definition Attribute.h:288
TAttribute(const OtherType &InInitialValue)
Definition Attribute.h:45
static UE_FORCEINLINE_HINT TAttribute CreateSPLambda(const TSharedRef< UserClass, Mode > &InUserObjectRef, LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:164
void Bind(SourceType *InUserObject, typename FGetter::template TConstMethodPtr< SourceType, std::decay_t< VarTypes >... > InMethodPtr, VarTypes &&... Vars)
Definition Attribute.h:347
static UE_FORCEINLINE_HINT TAttribute CreateRaw(const SourceType *InObject, ObjectType(SourceTypeOrBase::*InMethod)(PayloadTypes...) const, typename TDecay< PayloadTypes >::Type... InputPayload)
Definition Attribute.h:136
void BindUFunction(SourceType *InUserObject, const FName &InFunctionName)
Definition Attribute.h:377
const ObjectType & Get(const ObjectType &DefaultValue) const
Definition Attribute.h:262
void BindWeakLambda(UserClass *InUserObject, LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:416
TAttribute(SourceType *InUserObject, typename FGetter::template TConstMethodPtr< SourceType > InMethodPtr)
Definition Attribute.h:89
void Set(const OtherType &InNewValue)
Definition Attribute.h:210
void BindLambda(LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:388
void BindSPLambda(const UserClass *InUserObject, LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:405
void Bind(TSharedRef< SourceType > InUserObject, typename FGetter::template TConstMethodPtr< SourceType, std::decay_t< VarTypes >... > InMethodPtr, VarTypes &&... Vars)
Definition Attribute.h:332
static UE_FORCEINLINE_HINT TAttribute CreateSPLambda(UserClass *InUserObject, LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:169
static UE_FORCEINLINE_HINT TAttribute< ObjectType > Create(TFunction< ObjectType(void)> &&InLambda)
Definition Attribute.h:199
void BindSPLambda(const TSharedRef< UserClass, Mode > &InUserObjectRef, LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:399
TAttribute(TSharedRef< SourceType > InUserObject, typename FGetter::template TConstMethodPtr< SourceType > InMethodPtr)
Definition Attribute.h:73
friend class TAttribute
Definition Attribute.h:496
DECLARE_DELEGATE_RetVal(ObjectType, FGetter)
void Set(ObjectType &&InNewValue)
Definition Attribute.h:222
TVariant< ObjectType, FGetter > Steal()
Definition Attribute.h:447
TAttribute()
Definition Attribute.h:32
bool IsBound() const
Definition Attribute.h:427
static UE_FORCEINLINE_HINT TAttribute CreateWeakLambda(UserClass *InUserObject, LambdaType &&InCallable, PayloadTypes &&... InputPayload)
Definition Attribute.h:178
static TAttribute< ObjectType > Create(SourceType *InUserObject, const FName &InFunctionName)
Definition Attribute.h:192
bool IdenticalTo(const TAttribute &InOther) const
Definition Attribute.h:460
static TAttribute CreateStatic(FuncPtrType &&InFuncPtr, VarTypes... Vars)
Definition Attribute.h:126
Definition AndroidPlatformMisc.h:14
Definition SharedPointer.h:153
Mode
Definition AnimNode_TransitionPoseEvaluator.h:28
@ false
Definition radaudio_common.h:23