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);
}