C 関数ラムダ式を記述するための標準構文は次のとおりです: [capture](parameters) -> return_type { // Function body}、ここで、capture は外部変数のキャプチャ、parameters は関数パラメータ、return_type は関数のパラメータです。関数の戻り値の型。そのタイプはキャプチャ リストとパラメータ リストに従って分類されます: すべての外部変数をキャプチャ、パラメータなし: 自動タイプ、特定の外部変数をキャプチャ、パラメータなし: 自動タイプ (削減可能)、キャプチャなし、パラメータ: 関数タイプ。ラムダ式は一時関数オブジェクトを作成するために使用され、変数または関数ポインターに割り当てたり、引数として直接渡すことができます。
C関数ラムダ式記述仕様
構文:
[capture](parameters) -> return_type { // 函数体 }
このうち:
: 外部変数をキャプチャします。オプション、デフォルトは
[&] (すべての外部変数をキャプチャします)
: 関数のパラメーター、オプション
: 関数の戻り値の型、オプション
#ラムダ式のタイプ:
ラムダ式は匿名関数タイプに属します。そのタイプはキャプチャ リストとパラメータ リストによって異なります。 タイプ
型 (削減可能)
Type
使用仕様:
Lambda 式のポインターは、それが作成されたコンテキストを指します。
実際のケース:
// 捕获所有外部变量,无参数 auto lambda1 = []() { // 可以访问外部变量 std::cout << "Lambda 1: " << x << std::endl; }; // 捕获特定外部变量,无参数 int x = 10; auto lambda2 = [x]() { // 只可以访问捕获的外部变量 x std::cout << "Lambda 2: " << x << std::endl; }; // 无捕获,有参数 auto lambda3 = [](int y) { // 没有捕获外部变量,y 为函数参数 std::cout << "Lambda 3: " << y << std::endl; }; int main() { lambda1(); lambda2(); lambda3(20); return 0; }
出力:
Lambda 1: 10 Lambda 2: 10 Lambda 3: 20
以上がC++ での関数ラムダ式の記述仕様は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。