¿Son compatibles los goto y los destructores?
Este código conduce a un comportamiento indefinido:
void some_func() {
goto undefined;
{
T x = T();
undefined:
}
}
El constructor no se llama.
¿Pero qué hay de este código? ¿Se llamará al destructor de x? Creo que lo será, pero quiero estar seguro. :)
void some_func() {
{
T x = T();
goto out;
}
out:
}