, вытекающий с конца конструктора, деструктора или неканальной функции с типом возврата cv void, эквивалентна возврату без операнда. в противном случае, вытекающая из окончания функции, которая не является ни главной (6.9.3.1), ни коратиной (9.5.4) приводит к неопределенному поведению. Пример этого в действии. < /P>
Это не является реализацией, большинство основных компиляторов способны диагностировать возвращение по функции во всех путях управления без возврата значения, когда -wreturn -value < /code> (которая включена в -аллом < /code>), когда Clang, кажется, имеет ошибку в этом моменте для этого). Например, следующее получает предупреждение: < /p>
Код: Выделить всё
int foo(int a) {
if (a == 0) {
return 0;
} else if (a == 1) {
return 1;
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... ill-formed
Мобильная версия