¿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.