Return 0 неявный

На прошлой неделе на конкурсе ACM ICPC в Мексике я пропустил "возврат 0" в программе на С++. По этой причине мы получили наказание за 20 минут.

Я читал, что стандарт не обязывает нас писать его в конце основной функции. Это неявно, не так ли? Как я могу это доказать?

Мы использовали систему Fedora с компилятором g++.

Ответы

Ответ 1

Вы ссылаетесь на стандарт С++, глава 3.6.1, пункт 5:

Оператор возврата в основном имеет эффект оставления основной функции (уничтожение любых объектов с автоматическим время хранения) и вызов выход с возвращаемым значением как аргумент. Если контроль достигнет цели основного, не встречая возврата что эффект выполнение return 0;

Если у вас нет Стандарта, вы можете показать его в Рабочем проекте. Вот один для С++ 98, который уже определил это.

Вы можете узнать больше здесь.

Ответ 2

Вы можете показать им строку в Bjarne Stroustrup book, определяющую стандарт, где она заявляет об этом: поскольку это канонический стандарт для языка, он не открыт для обсуждения. К сожалению, у меня нет копии, чтобы найти ее сами.