Простой пример, чтобы прояснить ситуацию, с функцией, которая делит a на b.Возвращает true, если деление может быть оценено как ложное в противном случае
bool div(double a, double b, double& r)
{
int return_code = 1;
if (b == 0) // cannot divide
return_code = 0;
else
r = a/b;
return (return_code != 0);
}
В этом простом примере, только если b == 0, код возврата будет равен 0, поэтому Марк ответил, что он вернет false.В любом другом случае он вернет истину.Конечно, нет причин делать что-то подобное в такой простой функции.В более сложных функциях, где успех или не может измениться во многих местах, является обычной практикой использовать такие операторы возврата.