¿Las referencias de "revinculación" en C ++ son legales?

¿Es legal lo siguiente en C ++?

Por lo que yo puedo decir,Reference Tiene un destructor trivial, por lo que debe ser legal.
Pero pensé que las referencias no pueden recuperarse legalmente ... ¿pueden?

template<class T>
struct Reference
{
    T &r;
    Reference(T &r) : r(r) { }
};

int main()
{
    int x = 5, y = 6;
    Reference<int> r(x);
    new (&r) Reference<int>(y);
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta