C++23
CEDEC2024にてC++17~C++23の講演がありました。
https://www.docswell.com/s/cpp/5XEY92-cedec2024
さっそくC++23を使いたくなったけど、UnrealEngineが公式サポートしているのはC++20まで。
VisualStudio2022の対応状況は進んでいてSTLはもう使えそう。
https://learn.microsoft.com/en-us/cpp/overview/visual-cpp-language-conformance?view=msvc-170
エンジンビルドもC++23でするのは問題でるかもだけど、自プロジェクトならC++23ビルドしても動くでしょうということで設定方法を調べました。
Build.csを開いて一行書く
Build.csに
CppStandard = CppStandardVersion.Latest;
の一行を足しましょう。
これだけだとインテリセンスがまだC++20です。
cprojファイルを開きNMAKEの追加のオプションにあるオプションを変更しましょう。
/std:c++20 -> /std:c++latest
変更後はslnを閉じて開き直すとインテリセンスもC++23として働いてくれます。
適当なC++23コードを書いてテストします。
join_withを試します。
https://cpprefjp.github.io/reference/ranges/join_with_view.html
void AMyClass::BeginPlay()
{
Super::BeginPlay();
std::vector<std::string> hoge = {"aaa", "bbb"};
for(char h : hoge | std::views::join_with('-'))
{
std::cout << h << std::endl;
}
}
rangeアダプタで面倒な配列操作が楽になるといいなぁ
あくまで自己責任
UnrealEngineは公式にC++20なので、何かあっても自己責任の精神でいきましょう。
個人プロジェクトで使いなれていくのがいいですね。