Lambda 関数と Constexpr
質問: C の lambda 関数で constexpr を使用することは可能ですか?
次のコード例では、コンパイラは constexpr 関数の要求に関連するエラーを報告します:
<code class="cpp">struct Test { static const int value = []() -> int { return 0; } (); };</code>
Answer:
Update ( C 17): C 17 以降、ラムダ関数は定数式で使用できます。
C 17 より前: ラムダは現在、C 14 の定数式で使用できません。 、特定のラムダ式とクロージャ オブジェクトを定数式に含めることを許可する提案 (N4487) が作成されました。
この提案が受け入れられると、次の変更が導入されます:
この変更は、暗黙的に定義されたコンストラクターおよび代入演算子関数の動作に合わせて行われ、必要に応じて constexpr として推論できます。
以上がLambda 関数は C の `constexpr` で使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。