¿Qué es una excepción "recursive_init_error"?

Decidí hacer una prueba con gotos computados y estadísticas locales

void g() { std::cout << "init "; } 
void f() { 
  int z = 0; 
  y: z++; 
  static int x = 
    (g(), z == 1 ? ({ goto *&&y; 0; }) : 0); 
}

int main() { f(); std::cout << "!"; f(); }

Quería ver si la salida sería "init init!". Pero para mi sorpresa, no obtuve ese resultado, sino que GCC lo manejó con gracia, generando en tiempo de ejecución:

init terminated by recursive_init_error: exception

¿Cuál es esa excepción? ¿Es una excepción estándar? C ++ 03 o C ++ 0x? Gracias por cualquier explicación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta