Ошибка компилятора C3498
Var: невозможно записать переменную с управляемым или winRTtype
Нельзя записать переменную, имеющую управляемый тип или тип среды выполнения 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
}
Следующий пример разрешает C3498, передав управляемую переменную s
в список параметров лямбда-выражения:
// C3498b.cpp
// compile with: /clr
using namespace System;
int main()
{
String ^ s = "Hello";
[](String ^ s, String ^ r)
{ return String::Concat(s, r); } (s, ", World!");
}