次の方法で共有


コンパイラ エラー C3498

'var': マネージド型または WinRT 型を持つ変数はキャプチャできません

ラムダで、マネージド型または Windows ランタイム型を持つ変数をキャプチャすることはできません。

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

  • マネージド変数または Windows ランタイム変数をラムダ式のパラメーター リストに渡します。

次の例では、マネージド型を持つ変数がラムダ式のキャプチャ リストに表示されるため、C3498 が生成されます。

// C3498a.cpp
// compile with: /clr
using namespace System;

int main()
{
   String ^ s = "Hello";
   [&s](String ^ r)
      { return String::Concat(s, r); } (", World!"); // C3498
}

次の例では、マネージド型の変数 s をラムダ式のパラメーター リストに渡すことにより、C3498 を解決します。

// C3498b.cpp
// compile with: /clr
using namespace System;

int main()
{
   String ^ s = "Hello";
   [](String ^ s, String ^ r)
      { return String::Concat(s, r); } (s, ", World!");
}

関連項目

ラムダ式