[UE] TArrayの範囲外アクセスチェック

普通にやると以下のようなチェックになると思います。

TArray<FString> Array = { TEXT("Apple"), TEXT("Banana"), TEXT("Cherry") };
int32 Index = -1;

// 範囲外アクセスチェック
if(Index < 0 || Index >= Array.Num())
{
    // 範囲外
    return;
}

// 範囲内

しかし、UnrealEngineには便利なチェック関数を用意しています。

TArray<FString> Array = { TEXT("Apple"), TEXT("Banana"), TEXT("Cherry") };
int32 Index = -1;

// 範囲外アクセスチェック
if(!Array.IsValidIndex(Index))
{
    // 範囲外
    return;
}

// 範囲内

IsValidIndex()は UE_FORCEINLINE_HINT がついているので
ほぼインライン化されそうです。

UE_FORCEINLINE_HINT については難しくて自分もよくわかっていませんが、
コンパイルによってインライン設定が変わっていそう?

参考文献