¿Utilizando el operador ternario para inicializar una variable de referencia?

Dejando de lado todas las cuestiones de mantenimiento y lectura, ¿pueden estas líneas de código generar un comportamiento indefinido?

float  a = 0, b = 0;
float& x = some_condition()? a : b;
x = 5;
cout << a << ", " << b;

Respuestas a la pregunta(2)

Su respuesta a la pregunta