C++新特性在UE5中的使用

  • lambda表达式结合auto推导类型的使用
UWorld* CurWorld = GetWorld();
auto G_LambdaPrintOnScreen = [CurWorld](auto & FStringMessage)
{
	IsValid(CurWorld)?UKismetSystemLibrary::PrintString(CurWorld,FStringMessage);
}
  • 结构化初始化器对TMap,TArray的初始化赋值
TArray<int32> PrintArray = {3, 2, 4, 18, 5};
TMap<int32, FString> StructBind = {{1, "Hello"}, {2, "World"}};
  • auto在函数模板推导中的使用
template<typename T>
auto GetAutoTypeValue(T t)
{
	return t;
}
  • 别名模板及推导的使用
USTRUCT(BlueprintType)
struct FAliasStruct
{
	GENERATED_BODY()
	UPROPERTY(BlueprintReadWrite)
	float AliasFloatValue = 0.3f;
	UPROPERTY(BlueprintReadWrite)
	FName AliasName = "AliasName";
};
template<typename T, typename U>
struct TestStruct
{
	T t;
	U u;
};
template<typename T>
using AliasTestStruct = TestStruct<T, FAliasStruct>;
  • 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<float, float>(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<int32, FString> 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));
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值