#pragma once #include "DelegateBase.h" #include "ScriptDelegates.h" #include "DelegateInstanceInterface.h" #include "RemoveReference.h" #include "TypeWrapper.h" // template // (Milxnor) IDK IM SCUFFED class TBaseDelegate : public FDelegateBase { public: // (Milxnor) YEAH NO /* typedef typename TUnwrapType::Type RetValType; template FUNCTION_CHECK_RETURN_START inline static TBaseDelegate CreateRaw(UserClass* InUserObject, typename TMemFunPtrType::Type InFunc, VarTypes... Vars) FUNCTION_CHECK_RETURN_END { // UE_STATIC_DEPRECATE(4.23, TIsConst::Value, "Binding a delegate with a const object pointer and non-const function is deprecated."); TBaseDelegate Result; TBaseRawMethodDelegateInstance::Create(Result, InUserObject, InFunc, Vars...); return Result; } template FUNCTION_CHECK_RETURN_START inline static TBaseDelegate CreateRaw(UserClass* InUserObject, typename TMemFunPtrType::Type InFunc, VarTypes... Vars) FUNCTION_CHECK_RETURN_END { TBaseDelegate Result; TBaseRawMethodDelegateInstance::Create(Result, InUserObject, InFunc, Vars...); return Result; } template inline void BindRaw(UserClass* InUserObject, typename TMemFunPtrType::Type InFunc, VarTypes... Vars) { // UE_STATIC_DEPRECATE(4.23, TIsConst::Value, "Binding a delegate with a const object pointer and non-const function is deprecated."); *this = CreateRaw(const_cast::Type*>(InUserObject), InFunc, Vars...); } template inline void BindRaw(UserClass* InUserObject, typename TMemFunPtrType::Type InFunc, VarTypes... Vars) { *this = CreateRaw(InUserObject, InFunc, Vars...); } */ }; template class TBaseDynamicDelegate : public TScriptDelegate { public: /** * Default constructor */ TBaseDynamicDelegate() { } };