Language:
Discover
By Skill Level
By Category

TFunctionRef

Choose your OS:

Inheritance Hierarchy

TFunctionRefBase

TFunctionRef

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; }); }

============================================================================================= UnixPlatformFile.h: Unix platform File functions

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

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

References

Module

Core

Header

Runtime/Core/Public/GenericPlatform/GenericPlatformProcess.h