Goto e destruidores são compatíveis?
Este código leva a um comportamento indefinido:
void some_func() {
goto undefined;
{
T x = T();
undefined:
}
}
O construtor não é chamado.
Mas e esse código? O destruidor de x será chamado? Eu acho que vai ser, mas quero ter certeza. :)
void some_func() {
{
T x = T();
goto out;
}
out:
}