inicializador de paréntesis o igual en uniones
Relacionado:Cómo inicializar un miembro que no es POD en Union
El estándar dice
Como máximo, un miembro de datos no estático de una unión puede tener un inicializador de paréntesis o igual.
Pero
struct Point {
Point() {}
Point(int x, int y): x_(x), y_(y) {}
int x_, y_;
};
union U {
int z;
double w;
Point p = Point(1,2);
};
#include <iostream>
int main () {
U u;
std::cout << u.p.x_ << ":" << u.p.y_ << std::endl;
}
huellas dactilares4196960:0
en lugar de lo esperado1:2
.
Considero que esto es un error del compilador. ¿Es eso así?