5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[UE4] ラムダ式の基本的な書き方

Posted at

#【概要】
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

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?