инициализатор скобки или равный в союзах
Связанные с:Как инициализировать не-POD члена в Союзе
Стандарт говорит
Не более одного нестатического члена данных объединения может иметь инициализатор с фигурной или равной скобкой.
Но
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;
}
печать4196960:0
вместо ожидаемого1:2
.
Я считаю это ошибкой компилятора. Это так?