lambda表达式结合auto推导类型的使用
UWorld* CurWorld = GetWorld();
auto G_LambdaPrintOnScreen = [CurWorld](auto & FStringMessage)
{IsValid(CurWorld)?UKismetSystemLibrary::PrintString(CurWorld,FStringMessage);
}
结构化初始化器对TMap,TArray的初始化赋值
TArray PrintArray = {3, 2, 4, 18, 5};
TMap StructBind = {{1, "Hello"}, {2, "World"}};
auto在函数模板推导中的使用
template
auto GetAutoTypeValue(T t)
{return t;
}
别名模板及推导的使用
USTRUCT(BlueprintType)
struct FAliasStruct
{GENERATED_BODY()UPROPERTY(BlueprintReadWrite)float AliasFloatValue = 0.3f;UPROPERTY(BlueprintReadWrite)FName AliasName = "AliasName";
};
template
struct TestStruct
{T t;U u;
};
template
using AliasTestStruct = TestStruct;
constexpr的使用
constexpr int32 GetMaxValue(const int32 Left, const int32 Right)
{return Left < Right ? Left : Right;
}
结构化绑定在TTuple中使用
auto LambdaPairFucntion = [](const float Left, const float Right)
{return TTuple(Left, Right);
};
const auto[Left, Right] = LambdaPairFucntion(3.5f, 4.5f);
UKismetSystemLibrary::PrintString(GetWorld(),
UKismetStringLibrary::Conv_FloatToString(Left));
UKismetSystemLibrary::PrintString(GetWorld(),
UKismetStringLibrary::Conv_FloatToString(Right));
结构化绑定在TMap中的使用
TMap StructBind = {{1, "Hello"}, {2, "World"}};
for (const auto&[LeftChild, RightChild] : StructBind)
{_PrintFunction(LeftChild);UKismetSystemLibrary::PrintString(GetWorld(), RightChild);
}
多层命名空间的嵌套使用
namespace RootTestNS::SubFirstTestNS::LastNameSpace
{[[maybe_unused]] const static float TestNSValue = 0.01;
}
UKismetSystemLibrary::PrintString(GetWorld(),
UKismetStringLibrary::Conv_FloatToString(
RootTestNS::SubFirstTestNS::LastNameSpace::TestNSValue));