'var': 您無法擷取匿名等位的成員
備註
您無法擷取未命名等位的成員。
更正這個錯誤
- 為等位命名,並將完整的等位結構傳遞至 Lambda 運算式的擷取清單。
Example
下列範例會產生 C3492,因為它會擷取匿名等位的成員:
// C3492a.cpp
int main()
{
union
{
char ch;
int x;
};
ch = 'y';
[&x](char ch) { x = ch; }(ch); // C3492
}
下列範例透過為等位命名,並將完整的等位結構傳遞至 Lambda 運算式的擷取清單,來解決 C3492:
// C3492b.cpp
int main()
{
union
{
char ch;
int x;
} u;
u.ch = 'y';
[&u](char ch) { u.x = ch; }(u.ch);
}