Como os progs do C ++ obtêm seu valor de retorno, quando um retorno não é especificado na função?

Eu escrevi recentemente um post:
Erro estranho no programa C ++: Removendo o programa de interrupções de impressão

... no qual eu estava tentando resolver um problema aparentemente desconcertante, no qual remover uma instrução cout interromperia meu programa.

Como se viu, meu problema era que esqueci de retornar meu sinalizador de sucesso verdadeiro / falso que mais tarde eu usava para a lógica.

Mas, aparentemente, ALGO estava sendo devolvido e que algo sempre era verdade se eu deixasse o figurino, mas aparentemente "magicamente" se tornaria falso quando eu o tirasse.

Minha pergunta para todos vocês é:
O que determina o que uma função c ++ retorna quando nenhum comando de retorno é executado dentro da função? Existe alguma lógica nisso?

Obviamente, esquecer o seu tipo de retorno é uma má ideia. Nesse caso, porém, isso se deveu principalmente à natureza do meu programa - um trabalho rápido de hacker. Mais tarde, decidi que não valia a pena incluir um algoritmo para determinar o sucesso / falha da chamada de função - mas acidentalmente deixei para trás o código dependente do retorno.

O desconcertantemente g ++ não me deu avisos ou erros ao compilar o executável da seguinte maneira:

g++ main.cc -g -o it_util

Minha versão é: g ++ (GCC)4.1.2 20080704 (Red Hat 4.1.2-44)

Mais uma vez, para salvar outras frustrações futuras no caso de cometerem o mesmo erro bobo e encontrarem o mesmo comportamento aparentemente irregular, alguém pode lançar luz sobre onde uma função sem retorno obtém seu valor de retorno?

Obrigado!!

questionAnswers(6)

yourAnswerToTheQuestion