14#include "CoreMinimal.h"
32 template <CFunctionLike Function,
typename... Captures>
38 FDefaultDelegateUserPolicy
45 requires() {
typename std::decay_t<T>::ThreadSafetyMode; }
46 && CDerivedFrom<std::decay_t<T>, TScriptDelegate<typename std::decay_t<T>::ThreadSafetyMode>>
52 requires() {
typename std::decay_t<T>::ThreadSafetyMode; }
53 && CDerivedFrom<std::decay_t<T>, TMulticastScriptDelegate<typename std::decay_t<T>::ThreadSafetyMode>>
59 template <CDynamicDelegate Dynamic>
62 using Type =
typename Dynamic::template TMethodPtrResolver<FDeclareOnly>::FMethodPtr;
65 template <CDynamicMulticastDelegate Dynamic>
72 template <
typename Dynamic>
78 template <CDynamicDelegate Dynamic>
84 template <CDynamicMulticastDelegate Dynamic>
91 template <
typename Dynamic>
97 template <CDynamicDelegate Dynamic>
100 using Type = TDelegate<TDynamicSignature<Dynamic>, FDefaultDelegateUserPolicy>;
103 template <CDynamicMulticastDelegate Dynamic>
106 using Type = TMulticastDelegate<TDynamicSignature<Dynamic>, FDefaultDelegateUserPolicy>;
110 template<
typename Dynamic>
These two are the most useful types in the arsenal of the C++ developer. Use these for dummy types or...
Constraint given type to a dynamic delegate class.
Constraint given type to a dynamic multicast delegate class.
typename TNative_Struct< std::decay_t< Dynamic > >::Type TNative
Map the input dynamic (multicast) delegate to a conceptually compatible native (multicast) delegate t...
typename TDynamicSignature_Struct< std::decay_t< Dynamic > >::Type TDynamicSignature
Get the native function signature type compatible with given dynamic (multicast) delegate.
TDelegate< TFunctionFromTuple< TFunction_Return< Function >, TTrimEnd< sizeof...(Captures), TFunction_Arguments< Function > > >, FDefaultDelegateUserPolicy > TInferredDelegate
Infer a delegate type from an input function signature and a list of captures.
typename TDynamicMethodPtr_Struct< std::decay_t< Dynamic > >::Type TDynamicMethodPtr
Get the native function pointer type compatible with given dynamic (multicast) delegate.
typename TFunctionTraits< std::decay_t< T > >::Return TFunction_Return
Shorthand for getting a function return type.
typename TFunctionTraits< std::decay_t< T > >::Signature TFunction_Signature
Shorthand for getting a pur function signature.
typename Detail::TFunctionFromTuple_Struct< Return, std::decay_t< Tuple > >::Type TFunctionFromTuple
Compose a function type from a tuple of arguments and a return type.
typename TFunctionTraits< std::decay_t< T > >::Arguments TFunction_Arguments
Shorthand for getting a tuple representing the function arguments.
Templating utilities for manipulating TTuples.
typename TTrimEnd_Struct< Count, Tuple >::Type TTrimEnd
Disregard the last Count elements of the input tuple.
typename Dynamic::template TMethodPtrResolver< FDeclareOnly >::FMethodPtr Type
TFunction_Signature< TDynamicMethodPtr< Dynamic > > Type
TDelegate< TDynamicSignature< Dynamic >, FDefaultDelegateUserPolicy > Type