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&nbsp;en lugar de lo esperado1:2.

Considero que esto es un error del compilador. ¿Es eso así?