Inicializador entre chaves ou igual em uniões

Palavras-chave:Como inicializar um membro não-POD na União

O padrão diz

No máximo, um membro de dados não estáticos de uma união pode ter um inicializador entre chaves ou igual.

Mas

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;
}

impressões4196960:0 em vez do esperado1:2.

Considero isso um bug do compilador. É assim mesmo?

questionAnswers(1)

yourAnswerToTheQuestion