Posible duplicado:
¿Por qué puede regresar de una función no vacía sin devolver un valor sin generar un error de comstackción?
De acuerdo con el estándar de c ++, ¿cuál debería ser el valor de retorno de la siguiente función?
bool done() { // no return value }
Esto sería un comportamiento indefinido, cualquier cosa puede pasar.
Aunque devuelve un valor, es indefinido.