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


Ошибка компилятора C3492

var: нельзя передавать член анонимного объединения

Вы не можете передавать член анонимного объединения

Исправление ошибки

  • Присвойте объединению имя и передайте полную структуру объединения в список передаваемых параметров лямбда-выражения.

Примеры

В следующем примере возникает ошибка C3492, поскольку в нем передается член анонимного объединения:

// C3492a.cpp

int main()
{
   union
   {
      char ch;
      int x;
   };

   ch = 'y';
   [&x](char ch) { x = ch; }(ch); // C3492
}

В следующем примере устраняется ошибка C3492 путем предоставления объединению имени и передачи полной структуры объединения в список передаваемых параметров лямбда-выражения:

// C3492b.cpp

int main()
{
   union
   {
      char ch;
      int x;
   } u;

   u.ch = 'y';
   [&u](char ch) { u.x = ch; }(u.ch);
}

См. также

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