refactor(templates): TFunction replaces using type aliases with derived classes

This commit is contained in:
2022-05-14 22:52:21 +08:00
parent eeef55e9b4
commit 13e3b49118
2 changed files with 376 additions and 310 deletions

View File

@ -1158,6 +1158,30 @@ void TestFunction()
TUniqueFunction<void()> UniqueG; UniqueG = MoveTemp(UniqueA);
}
{
struct FFunctor
{
int32 A;
FFunctor(int32 InA) : A(InA) { }
int32 operator()() const { return A; }
};
FFunctor Functor(0xCC);
// TFunctionRef<void()> RefA;
TFunction<void()> ObjectA;
TUniqueFunction<void()> UniqueA;
// RefA = Functor;
ObjectA = Functor;
UniqueA = Functor;
// RefA.Emplace<FFunctor>(0xCC);
ObjectA.Emplace<FFunctor>(0xCC);
UniqueA.Emplace<FFunctor>(0xCC);
}
{
TFunction<void(int32)> Display = PrintNum;
Display(-9);