10 template <
typename InvocableType>
13 template <
typename ClassType,
typename FunctionType>
22 if constexpr (std::is_base_of_v<ClassType, DecayedArg0Type>)
33 template <
typename InvocableType>
36 template <
typename ClassType,
typename MemberType>
41 template <
typename Arg0Type>
42 constexpr decltype(
auto)
operator()(
Arg0Type&& Arg0)
const
45 if constexpr (std::is_base_of_v<ClassType, DecayedArg0Type>)
47 return ((
Arg0Type&&)Arg0).*this->DataMemberPtr;
51 return (*(
Arg0Type&&)Arg0).*this->DataMemberPtr;
56 template <
typename Class,
typename MemberType>
59 return std::is_function_v<MemberType>;
110 if constexpr (
sizeof...(InvocableTypes) == 0)
113 if constexpr (!std::is_member_pointer_v<DecayedInvocable0Type>)
#define AUTORTFM_INFER
Definition AutoRTFMDefines.h:121
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
AUTORTFM_INFER constexpr auto Projection(Invocable0Type &&Invocable0, InvocableTypes &&... Invocables)
Definition Projection.h:108
implementation
Definition PlayInEditorLoadingScope.h:8
constexpr bool TIsMemberPointerToFunction(MemberType Class::*)
Definition Projection.h:57
struct AUTORTFM_INFER TProjectionMemberFunction
Definition Projection.h:11
MemberType ClassType::* DataMemberPtr
Definition Projection.h:39
Definition Projection.h:34
FunctionType ClassType::* MemberFunctionPtr
Definition Projection.h:16