Поделиться через


Ошибка компилятора 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!");
}

См. также

Лямбда-выражения