Erreur du compilateur C3492
'var' : vous ne pouvez pas capturer un membre d’union anonyme
Vous ne pouvez pas capturer un membre d’une union sans nom.
Pour corriger cette erreur
- Donnez un nom à l’union et passez la structure d’union complète à la liste de capture de l’expression lambda.
Exemples
L’exemple suivant génère l’erreur C3492, car il capture un membre d’une union anonyme :
// C3492a.cpp
int main()
{
union
{
char ch;
int x;
};
ch = 'y';
[&x](char ch) { x = ch; }(ch); // C3492
}
L’exemple suivant résout l’erreur C3492 en nommant l’union et en passant la structure d’union complète à la liste de capture de l’expression lambda :
// C3492b.cpp
int main()
{
union
{
char ch;
int x;
} u;
u.ch = 'y';
[&u](char ch) { u.x = ch; }(u.ch);
}