Compartilhar via


Erro do compilador C3492

'var': não é possível capturar um membro de uma união anônima

Você não pode capturar um membro de uma união sem nome.

Para corrigir este erro

  • Dê um nome à união e passe a estrutura completa da união para a lista de captura da expressão lambda.

Exemplos

O exemplo a seguir gera C3492 porque captura um membro de uma união anônima:

// C3492a.cpp

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

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

O exemplo a seguir resolve c3492 dando um nome à união e passando a estrutura completa da união para a lista de captura da expressão lambda:

// C3492b.cpp

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

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

Confira também

Expressões Lambda