Compiler Error C3492
'var': you cannot capture a member of an anonymous union
You cannot capture a member of an unnamed union.
To correct this error
- Give the union a name and pass the complete union structure to the capture list of the lambda expression.
Examples
The following example generates C3492 because it captures a member of an anonymous union:
// C3492a.cpp
int main()
{
union
{
char ch;
int x;
};
ch = 'y';
[&x](char ch) { x = ch; }(ch); // C3492
}
The following example resolves C3492 by giving the union a name and by passing the complete union structure to the capture list of the lambda expression:
// C3492b.cpp
int main()
{
union
{
char ch;
int x;
} u;
u.ch = 'y';
[&u](char ch) { u.x = ch; }(u.ch);
}
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for