TFunctionRef

TFunctionRef

Windows
MacOS
Linux

Inheritance Hierarchy

TFunctionRefBase

TFunctionRef

References

Module

Core

Header

/Engine/Source/Runtime/Core/Public/GenericPlatform/GenericPlatformProcess.h

Include

#include "GenericPlatform/GenericPlatformProcess.h"

Syntax

Remarks

TFunctionRef<FuncType>

See the class definition for intended usage.

TFunctionRef<FuncType>

A class which represents a reference to something callable. The important part here is reference - if you bind it to a lambda and the lambda goes out of scope, you will be left with an invalid reference.

FuncType represents a function type and so TFunctionRef should be defined as follows:

A function taking a string and float and returning int32. Parameter names are optional. TFunctionRef<int32 (const FString& Name, float Scale)>

If you also want to take ownership of the callable thing, e.g. you want to return a lambda from a function, you should use TFunction. TFunctionRef does not concern itself with ownership because it's intended to be FAST.

TFunctionRef is most useful when you want to parameterize a function with some caller-defined code without making it a template.

Example:

Something.h void DoSomethingWithConvertingStringsToInts(TFunctionRef<int32 (const FString& Str)> Convert);

Something.cpp void DoSomethingWithConvertingStringsToInts(TFunctionRef<int32 (const FString& Str)> Convert) { for (const FString& Str : SomeBunchOfStrings) { int32 Int = Convert(Str); DoSomething(Int); } }

SomewhereElse.cpp #include "Something.h"

void Func() { First do something using string length DoSomethingWithConvertingStringsToInts([](const [FString](API\Runtime\Core\Containers\FString)& Str) { return Str.Len(); });

Then do something using string conversion DoSomethingWithConvertingStringsToInts([](const [FString](API\Runtime\Core\Containers\FString)& Str) { int32 Result; TTypeFromString<int32>::FromString(Result, *Str); return Result; }); }

Constructors

Name Description

Public function

TFunctionRef

(
    FunctorType&& InFunc
)

Constructor which binds a TFunctionRef to a callable object.

Public function

TFunctionRef

(
    const TFunctionRef&
)

Destructors

Name Description

Public function

~TFunctionRef()

Operators

Name Description

Public function Const

TFunctionRef...

 

operator=

(
    const TFunctionRef&
)

We delete the assignment operators because we don't want it to be confused with being related to regular C++ reference assignment - i.e. calling the assignment operator of whatever the reference is bound to - because that's not what TFunctionRef does, nor is it even capable of doing that.

Typedefs

Name

Description

Super

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss