C++ での constexpr ラムダ式
Visual Studio 2017 バージョン 15.3 以降 (/std:c++17
モード以降で使用可能): ラムダ式は、キャプチャまたは導入される各データ メンバーの初期化が定数式内で許可されている場合に、constexpr
として宣言または定数式で使用できます。
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
ラムダは、結果が constexpr
関数の要件を満たす場合は、暗黙的 constexpr
です。
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
ラムダが暗黙的または明示的な constexpr
であり、関数ポインターに変換された場合、結果として得られる関数も次のように constexpr
なります。
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示