#【概要】
C++を書いていると、関数として定義する程でも無いが、普通に書くとコピペになってしまうような処理が出てくることがあります。
そういった場合、ラムダ式を使うことによって実装をスッキリさせることが出来ます。
よく書き方を忘れてしまうので、備忘録として書き残します。
#【書き方】
UE4ではTFunctionRefを使い、以下のように記述します。
※std::functionでもTFunctionでも可。違いについては参考サイトを参照。
const int32 Value1 = 10;
//定義
TFunctionRef<float(const int32)> TestLambda = [&Value1](const int32 Value2)
{
return static_cast<float>(Value1 + Value2);
};
//呼び出し
float Result = TestLambda(1);
それぞれの項目の意味は以下のようになっています。
TFunctionRef<戻り値の型(引数の型)> TestLambda = [キャプチャリスト(ラムダ式の外から持ってきたい変数)](引数の変数定義)
キャプチャリストの詳しい記法に関しては、こちらのサイト様を参考にさせていただきました。
https://cpprefjp.github.io/lang/cpp11/lambda_expressions.html
#【参考サイト】
こちらのサイト様を参考にさせていただきました。
https://usagi.hatenablog.jp/entry/2017/12/01/ac_ue4_2_p5
https://cpprefjp.github.io/lang/cpp11/lambda_expressions.html