次の方法で共有


コンパイラ エラー C3491

'var': 変更できないラムダでは値キャプチャは変更できません

変更できないラムダ式では、値によってキャプチャされる変数の値を変更できません。

このエラーを解決するには

  • mutable キーワードでラムダ式を宣言します。または、

  • ラムダ式のキャプチャ リストへの参照によって変数を渡します。

次の例では、変更できないラムダ式の本体がキャプチャ変数 mを変更するため、C3491 が生成されます。

// C3491a.cpp

int main()
{
   int m = 55;
   [m](int n) { m = n; }(99); // C3491
}

次の例では、ラムダ式を mutable キーワードで宣言することで C3491 を解決しています。

// C3491b.cpp

int main()
{
   int m = 55;
   [m](int n) mutable { m = n; }(99);
}

関連項目

ラムダ式