Choose your operating system:
Windows
macOS
Linux
| TFunctionRefBase
|
Module |
|
Header |
/Engine/Source/Runtime/Core/Public/GenericPlatform/GenericPlatformMisc.h |
Include |
#include "GenericPlatform/GenericPlatformMisc.h" |
template<typename FuncType>
class TFunction : public UE::Core::Private::Function::TFunctionRefBase< UE::Core::Private::Function::TFunctionStorage< false >, FuncType >
TFunction<FuncType>
See the class definition for intended usage.
TFunction<FuncType>
A class which represents a copy of something callable. FuncType represents a function type and so TFunction should be defined as follows:
A function taking a string and float and returning int32. Parameter names are optional. TFunction<int32 (const FString& Name, float Scale)>
Unlike TFunctionRef, this object is intended to be used like a UE version of std::function. That is, it takes a copy of whatever is bound to it, meaning you can return it from functions and store them in objects without caring about the lifetime of the original object being bound.
Example:
Something.h TFunction<FString (int32)> GetTransform();
Something.cpp TFunction<FString (int32)> GetTransform(const FString& Prefix) { Squares number and returns it as a string with the specified prefix return = { return Prefix + TEXT(": ") + TTypeToString<int32>::ToString(Num * Num); }; }
SomewhereElse.cpp #include "Something.h"
void Func() { TFunction<FString (int32)> Transform = GetTransform(TEXT("Hello"));
FString Result = Transform(5); // "Hello: 25" }