Почему вытекает с конца функции без возвращаемого значения, не образующегося плохого?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему вытекает с конца функции без возвращаемого значения, не образующегося плохого?

Сообщение Anonymous »

Я столкнулся с этим текстом в стандарте: < /p>

, вытекающий с конца конструктора, деструктора или неканальной функции с типом возврата 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;
}
}
Это также не связано с тем фактом, что main () может возвращаться без значения, потому что стандартные особые случаи, которые в любом случае.

Подробнее здесь: https://stackoverflow.com/questions/796 ... ill-formed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»