コンパイラ エラー 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!");
}