4#if !defined( __Delegate_h__ ) || !defined( FUNC_INCLUDING_INLINE_IMPL )
5 #error "This inline header must only be included by Delegate.h"
32template <
typename To,
typename From>
66template <
typename DelegateSignature,
typename UserPolicy = FDefaultDelegateUserPolicy>
69template <
typename InRetValType,
typename... ParamTypes,
typename UserPolicy>
73 using Super =
typename UserPolicy::FDelegateExtras;
80 static_assert(std::is_convertible_v<typename UserPolicy::FDelegateInstanceExtras*, IDelegateInstance*>,
"UserPolicy::FDelegateInstanceExtras should publicly inherit IDelegateInstance");
81 static_assert(std::is_convertible_v<typename UserPolicy::FMulticastDelegateExtras*, TMulticastDelegateBase<UserPolicy>*>,
"UserPolicy::FMulticastDelegateExtras should publicly inherit TMulticastDelegateBase<UserPolicy>");
83 template <
typename,
typename>
86 template <
typename,
typename>
92 template <
typename,
typename>
95 template <
typename,
typename>
125 template<
typename FunctorType,
typename...
VarTypes>
135 template<
typename UserClass,
ESPMode Mode,
typename FunctorType,
typename...
VarTypes>
140 template <
typename UserClass,
typename FunctorType,
typename...
VarTypes>
150 template<
typename FunctorType,
typename...
VarTypes>
162 template <
typename UserClass,
typename...
VarTypes>
165 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
169 template <
typename UserClass,
typename...
VarTypes>
181 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
197 template <
typename UserClass,
typename...
VarTypes>
200 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
204 template <
typename UserClass,
typename...
VarTypes>
218 template <
typename UserClass,
typename...
VarTypes>
221 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
225 template <
typename UserClass,
typename...
VarTypes>
239 template <
typename UserClass,
typename...
VarTypes>
242 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
246 template <
typename UserClass,
typename...
VarTypes>
275 template <
typename UserClass,
typename...
VarTypes>
278 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
282 template <
typename UserClass,
typename...
VarTypes>
287 template <
typename UserClass,
typename...
VarTypes>
290 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
294 template <
typename UserClass,
typename...
VarTypes>
308template <
typename DelegateSignature,
typename UserPolicy = FDefaultDelegateUserPolicy>
311 static_assert(
sizeof(UserPolicy) == 0,
"Expected a function signature for the delegate template parameter");
314template <
typename InRetValType,
typename... ParamTypes,
typename UserPolicy>
323 using typename Super::FReadAccessScope;
324 using Super::GetReadAccessScope;
325 using typename Super::FWriteAccessScope;
326 using Super::GetWriteAccessScope;
376 template<
typename FunctorType,
typename...
VarTypes>
388 template<
typename UserClass,
ESPMode Mode,
typename FunctorType,
typename...
VarTypes>
395 template <
typename UserClass,
typename FunctorType,
typename...
VarTypes>
407 template<
typename FunctorType,
typename...
VarTypes>
421 template <
typename UserClass,
typename...
VarTypes>
424 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
430 template <
typename UserClass,
typename...
VarTypes>
447 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
467 template <
typename UserClass,
typename...
VarTypes>
470 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
476 template <
typename UserClass,
typename...
VarTypes>
492 template <
typename UserClass,
typename...
VarTypes>
495 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
501 template <
typename UserClass,
typename...
VarTypes>
517 template <
typename UserClass,
typename...
VarTypes>
520 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
526 template <
typename UserClass,
typename...
VarTypes>
561 template <
typename UserClass,
typename...
VarTypes>
564 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
570 template <
typename UserClass,
typename...
VarTypes>
577 template <
typename UserClass,
typename...
VarTypes>
580 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
586 template <
typename UserClass,
typename...
VarTypes>
624 requires (std::is_void_v<RetValType>)
628 if (
const DelegateInstanceInterfaceType* Ptr = GetDelegateInstanceProtected())
643 return static_cast<DelegateInstanceInterfaceType*
>(Super::GetDelegateInstanceProtected());
647 return static_cast<const DelegateInstanceInterfaceType*
>(Super::GetDelegateInstanceProtected());
651 template<
typename OtherUserPolicy>
654 if ((
void*)&
Other == (
void*)
this)
679 template<
typename OtherUserPolicy>
688template <
typename DelegateSignature>
691template <
typename DelegateSignature>
724template <
typename DelegateSignature,
typename UserPolicy = FDefaultDelegateUserPolicy>
727template <
typename... ParamTypes,
typename UserPolicy>
731 using Super =
typename UserPolicy::FMulticastDelegateExtras;
735 using InvocationListType =
typename Super::InvocationListType;
744 using Super::IsBound;
745 using Super::IsBoundToObject;
746 using Super::RemoveAll;
747 using Super::GetAllocatedSize;
751 using Super::AddDelegateInstance;
752 using Super::RemoveDelegateInstance;
801 template<
typename FunctorType,
typename...
VarTypes>
814 template <
typename UserClass,
typename FunctorType,
typename...
VarTypes>
827 template<
typename UserClass,
typename FunctorType,
typename...
VarTypes>
842 template <
typename UserClass,
typename...
VarTypes>
845 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
849 template <
typename UserClass,
typename...
VarTypes>
866 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
884 template <
typename UserClass,
typename...
VarTypes>
887 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
891 template <
typename UserClass,
typename...
VarTypes>
905 template <
typename UserClass,
typename...
VarTypes>
908 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
912 template <
typename UserClass,
typename...
VarTypes>
928 template <
typename UserClass,
typename...
VarTypes>
931 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
935 template <
typename UserClass,
typename...
VarTypes>
968 template <
typename UserClass,
typename...
VarTypes>
971 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
975 template <
typename UserClass,
typename...
VarTypes>
980 template <
typename UserClass,
typename...
VarTypes>
983 static_assert(!std::is_const_v<UserClass>,
"Attempting to bind a delegate with a const object pointer and non-const member function.");
987 template <
typename UserClass,
typename...
VarTypes>
1005 bool bResult =
false;
1008 bResult = RemoveDelegateInstance(
Handle);
1027template <
typename DelegateSignature,
typename UserPolicy = FDefaultDelegateUserPolicy>
1030 static_assert(
sizeof(
DelegateSignature) == 0,
"Expected a function signature for the delegate template parameter");
1033template <
typename RetValType,
typename... ParamTypes,
typename UserPolicy>
1036 static_assert(
sizeof(RetValType) == 0,
"The return type of a multicast delegate must be void");
1039template <
typename... ParamTypes,
typename UserPolicy>
1080template <
typename DelegateSignature>
1083template <
typename DelegateSignature>
1092template <
typename ThreadSafetyMode,
typename RetValType,
typename... ParamTypes>
1113 template<
class UserClass >
1117 typedef RetValType (UserClass::*
FMethodPtr)(ParamTypes... Params);
1130 template<
class UserClass >
1144 ensureMsgf(this->
IsBound(),
TEXT(
"Unable to bind delegate to '%s' (function might not be marked as a UFUNCTION or object may be pending kill)"), *InFunctionName.
ToString());
1146 template<
class UserClass >
1164template <
typename ThreadSafetyMode,
typename RetValType,
typename... ParamTypes>
1196 template<
class UserClass >
1205 template<
class UserClass >
1221 template<
class UserClass >
1231 this->
Add( NewDelegate );
1233 template<
class UserClass >
1249 template<
class UserClass >
1261 template<
class UserClass >
1277 template<
class UserClass >
1286 template<
class UserClass >
1295#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_5
1299#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_7
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
typename TCopyQualifiersFromTo< From, To >::Type TCopyQualifiersFromTo_T
Definition CopyQualifiersFromTo.h:17
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define CHECK_DELEGATE_LIFETIME(DelegateInstance)
Definition DelegateBase.h:116
TCopyQualifiersFromTo_T< From, To > * Cast(From *Src)
Definition Casts.h:95
T * ToRawPtr(const TObjectPtr< T > &Ptr)
Definition ObjectPtr.h:1000
typename TIdentity< T >::Type TIdentity_T
Definition Identity.h:24
ESPMode
Definition SharedPointerFwd.h:12
UE_REWRITE T CopyTemp(T &Val)
Definition UnrealTemplate.h:554
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition IDelegateInstance.h:14
Definition NameTypes.h:617
CORE_API FString ToString() const
Definition UnrealNames.cpp:3537
Definition IDelegateInstance.h:112
Definition DelegateSignatureImpl.inl:1115
RetValType(UserClass::* FMethodPtr)(ParamTypes... Params)
Definition DelegateSignatureImpl.inl:1117
Definition DelegateSignatureImpl.inl:1094
void __Internal_BindDynamic(TObjectPtr< UserClass > InUserObject, typename TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName)
Definition DelegateSignatureImpl.inl:1147
TBaseDynamicDelegate(const TScriptDelegate< ThreadSafetyMode > &InScriptDelegate)
Definition DelegateSignatureImpl.inl:1106
TBaseDynamicDelegate()
Definition DelegateSignatureImpl.inl:1099
void __Internal_BindDynamic(UserClass *InUserObject, typename TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName)
Definition DelegateSignatureImpl.inl:1131
Definition DelegateSignatureImpl.inl:1166
TBaseDynamicDelegate< ThreadSafetyMode, RetValType, ParamTypes... > FDelegate
Definition DelegateSignatureImpl.inl:1169
void __Internal_AddUniqueDynamic(UserClass *InUserObject, typename FDelegate::template TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName)
Definition DelegateSignatureImpl.inl:1250
void __Internal_RemoveDynamic(TObjectPtr< UserClass > InUserObject, typename FDelegate::template TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName)
Definition DelegateSignatureImpl.inl:1287
void __Internal_AddDynamic(UserClass *InUserObject, typename FDelegate::template TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName)
Definition DelegateSignatureImpl.inl:1222
TBaseDynamicMulticastDelegate(const TMulticastScriptDelegate< ThreadSafetyMode > &InMulticastScriptDelegate)
Definition DelegateSignatureImpl.inl:1181
TBaseDynamicMulticastDelegate()
Definition DelegateSignatureImpl.inl:1174
void __Internal_AddUniqueDynamic(TObjectPtr< UserClass > InUserObject, typename FDelegate::template TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName)
Definition DelegateSignatureImpl.inl:1262
void __Internal_AddDynamic(TObjectPtr< UserClass > InUserObject, typename FDelegate::template TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName)
Definition DelegateSignatureImpl.inl:1234
bool __Internal_IsAlreadyBound(UserClass *InUserObject, typename FDelegate::template TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName) const
Definition DelegateSignatureImpl.inl:1197
void __Internal_RemoveDynamic(UserClass *InUserObject, typename FDelegate::template TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName)
Definition DelegateSignatureImpl.inl:1278
bool __Internal_IsAlreadyBound(TObjectPtr< UserClass > InUserObject, typename FDelegate::template TMethodPtrResolver< UserClass >::FMethodPtr InMethodPtr, FName InFunctionName) const
Definition DelegateSignatureImpl.inl:1206
Definition DelegateInstancesImplFwd.h:53
Definition DelegateInstancesImplFwd.h:35
Definition DelegateInstancesImplFwd.h:29
Definition DelegateInstancesImplFwd.h:23
Definition DelegateInstancesImplFwd.h:47
Definition DelegateInstancesImplFwd.h:17
Definition DelegateInstancesImplFwd.h:41
Definition DelegateSignatureImpl.inl:71
void BindUFunction(TObjectPtr< UObjectTemplate > InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:264
void BindUFunction(UObjectTemplate *InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:259
void BindUObject(TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:295
void BindLambda(FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:126
void BindThreadSafeSP(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:240
InRetValType RetValType
Definition DelegateSignatureImpl.inl:100
void BindSPLambda(const UserClass *InUserObject, FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:141
void BindSP(const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:186
void BindWeakLambda(const UObject *InUserObject, FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:151
~TDelegateRegistration()=default
TDelegateRegistration()=default
void BindSP(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:198
TDelegateRegistration & operator=(const TDelegateRegistration &)=default
bool ExecuteIfBound(ParamTypes... Params) const =delete
void BindSP(const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:179
RetValType Execute(ParamTypes... Params) const =delete
void BindUObject(TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:288
void BindSP(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:205
InRetValType(ParamTypes...) FuncType
Definition DelegateSignatureImpl.inl:76
void BindThreadSafeSP(const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:219
void BindThreadSafeSP(const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:226
TDelegateRegistration(TDelegateRegistration &&)=default
InRetValType(ParamTypes...) TFuncType
Definition DelegateSignatureImpl.inl:101
void BindRaw(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:170
TDelegateRegistration & operator=(TDelegateRegistration &&)=default
void BindThreadSafeSP(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:247
void BindSPLambda(const TSharedRef< UserClass, Mode > &InUserObjectRef, FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:136
void BindUObject(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:283
void BindStatic(typename TBaseStaticDelegateInstance< FuncType, UserPolicy, std::decay_t< VarTypes >... >::FFuncPtr InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:116
void BindRaw(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:163
TDelegateRegistration(const TDelegateRegistration &)=default
void BindUObject(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:276
Definition DelegateSignatureImpl.inl:67
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateWeakLambda(const UObject *InUserObject, FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:408
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateThreadSafeSP(const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:493
TDelegate(TYPE_OF_NULLPTR)
Definition DelegateSignatureImpl.inl:342
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateUFunction(TObjectPtr< UObjectTemplate > InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:548
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateThreadSafeSP(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:527
TDelegate(const TDelegate &Other)
Definition DelegateSignatureImpl.inl:346
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateSP(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:468
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateUObject(TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:587
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateUFunction(UObjectTemplate *InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:541
UE_FORCEINLINE_HINT const DelegateInstanceInterfaceType * GetDelegateInstanceProtected() const
Definition DelegateSignatureImpl.inl:645
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateSP(const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:454
InRetValType(ParamTypes...) TFuncType
Definition DelegateSignatureImpl.inl:333
typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., VarTypes...)>::Type TMethodPtr
Definition DelegateSignatureImpl.inl:337
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateSP(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:477
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateThreadSafeSP(const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:502
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateStatic(TIdentity_T< RetValType(*)(ParamTypes..., std::decay_t< VarTypes >...)> InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:365
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateSP(const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:445
typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., VarTypes...)>::Type TConstMethodPtr
Definition DelegateSignatureImpl.inl:338
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateRaw(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:422
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateRaw(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:431
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateUObject(TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:578
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateSPLambda(UserClass *InUserObject, FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:396
RetValType Execute(ParamTypes... Params) const
Definition DelegateSignatureImpl.inl:603
InRetValType RetValType
Definition DelegateSignatureImpl.inl:332
RetValType(*)(ParamTypes..., VarTypes...) TFuncPtr
Definition DelegateSignatureImpl.inl:336
TDelegate & operator=(TDelegate &&Other)=default
TDelegate(TDelegate &&Other)=default
TDelegate & operator=(const TDelegate &Other)
Definition DelegateSignatureImpl.inl:351
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateUObject(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:562
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateUObject(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:571
bool ExecuteIfBound(ParamTypes... Params) const
Definition DelegateSignatureImpl.inl:623
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateSPLambda(const TSharedRef< UserClass, Mode > &InUserObjectRef, FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:389
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateThreadSafeSP(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, RetValType(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:518
UE_FORCEINLINE_HINT DelegateInstanceInterfaceType * GetDelegateInstanceProtected()
Definition DelegateSignatureImpl.inl:641
static TDelegate< RetValType(ParamTypes...), UserPolicy > CreateLambda(FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:377
Definition DelegateSignatureImpl.inl:310
Definition MulticastDelegateBase.h:28
Definition DelegateSignatureImpl.inl:729
FDelegateHandle AddSP(const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:871
FDelegateHandle AddThreadSafeSP(const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:913
TMulticastDelegateRegistration(TMulticastDelegateRegistration &&)=default
FDelegateHandle AddUObject(TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:981
FDelegateHandle AddUObject(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:969
FDelegateHandle AddUFunction(UObjectTemplate *InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:950
TMulticastDelegateRegistration & operator=(const TMulticastDelegateRegistration &)=default
TMulticastDelegateRegistration(const TMulticastDelegateRegistration &)=default
FDelegateHandle Add(FDelegate &&InNewDelegate)
Definition DelegateSignatureImpl.inl:769
FDelegateHandle AddSP(const TSharedRef< UserClass, Mode > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:864
FDelegateHandle AddRaw(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:843
FDelegateHandle AddUObject(TObjectPtr< UserClass > InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:988
TMulticastDelegateRegistration & operator=(TMulticastDelegateRegistration &&)=default
FDelegateHandle AddSPLambda(const UserClass *InUserObject, FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:815
FDelegateHandle AddThreadSafeSP(const TSharedRef< UserClass, ESPMode::ThreadSafe > &InUserObjectRef, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:906
FDelegateHandle AddStatic(typename TBaseStaticDelegateInstance< void(ParamTypes...), UserPolicy, std::decay_t< VarTypes >... >::FFuncPtr InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:790
bool Remove(FDelegateHandle Handle)
Definition DelegateSignatureImpl.inl:1003
typename UserPolicy::FMulticastDelegateExtras Super
Definition DelegateSignatureImpl.inl:731
FDelegateHandle AddLambda(FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:802
FDelegateHandle AddThreadSafeSP(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:929
~TMulticastDelegateRegistration()=default
FDelegateHandle AddSP(UserClass *InUserObject, typename TMemFunPtrType< false, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:885
FDelegateHandle Add(const FDelegate &InNewDelegate)
Definition DelegateSignatureImpl.inl:779
FDelegateHandle AddRaw(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:850
FDelegateHandle AddWeakLambda(UserClass *InUserObject, FunctorType &&InFunctor, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:828
void Broadcast(ParamTypes... Params)=delete
FDelegateHandle AddUFunction(TObjectPtr< UObjectTemplate > InUserObject, const FName &InFunctionName, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:955
FDelegateHandle AddSP(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:892
TMulticastDelegateRegistration()=default
FDelegateHandle AddUObject(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:976
FDelegateHandle AddThreadSafeSP(const UserClass *InUserObject, typename TMemFunPtrType< true, UserClass, void(ParamTypes..., std::decay_t< VarTypes >...)>::Type InFunc, VarTypes &&... Vars)
Definition DelegateSignatureImpl.inl:936
Definition DelegateSignatureImpl.inl:725
~TMulticastDelegate()=default
TMulticastDelegate(const TMulticastDelegate &Other)
Definition DelegateSignatureImpl.inl:1051
TMulticastDelegate()=default
void Broadcast(ParamTypes... Params) const
Definition DelegateSignatureImpl.inl:1074
TMulticastDelegate & operator=(TMulticastDelegate &&)=default
TMulticastDelegate(TMulticastDelegate &&)=default
TMulticastDelegate & operator=(const TMulticastDelegate &Other)
Definition DelegateSignatureImpl.inl:1056
Definition DelegateSignatureImpl.inl:1029
Definition ScriptDelegates.h:509
typename UE::Core::Private::TScriptDelegateTraits< ThreadSafetyMode >::ThreadSafetyMode ThreadSafetyMode
Definition ScriptDelegates.h:520
void AddUnique(const TScriptDelegate< ThreadSafetyMode > &InDelegate)
Definition ScriptDelegates.h:695
bool Contains(const TScriptDelegate< ThreadSafetyMode > &InDelegate) const
Definition ScriptDelegates.h:602
Definition ScriptDelegates.h:66
FName FunctionName
Definition ScriptDelegates.h:488
bool IsBound() const
Definition ScriptDelegates.h:193
typename UE::Core::Private::TScriptDelegateTraits< ThreadSafetyMode >::ThreadSafetyMode ThreadSafetyMode
Definition ScriptDelegates.h:68
WeakPtrType Object
Definition ScriptDelegates.h:485
Definition SharedPointer.h:153
Definition DelegateInstancesImplFwd.h:59
Definition SharedPointer.h:1295
Definition WeakObjectPtr.h:49
Definition DelegateInstanceInterface.h:12
Definition DelegateInstanceInterface.h:49
Definition ObjectPtr.h:488
Definition DelegateBase.h:205