Return 0 неявный
На прошлой неделе на конкурсе ACM ICPC в Мексике я пропустил "возврат 0" в программе на С++. По этой причине мы получили наказание за 20 минут.
Я читал, что стандарт не обязывает нас писать его в конце основной функции. Это неявно, не так ли? Как я могу это доказать?
Мы использовали систему Fedora с компилятором g++.
Ответы
Ответ 1
Вы ссылаетесь на стандарт С++, глава 3.6.1, пункт 5:
Оператор возврата в основном имеет эффект оставления основной функции (уничтожение любых объектов с автоматическим время хранения) и вызов выход с возвращаемым значением как аргумент. Если контроль достигнет цели основного, не встречая возврата что эффект выполнение return 0;
Если у вас нет Стандарта, вы можете показать его в Рабочем проекте. Вот один для С++ 98, который уже определил это.
Вы можете узнать больше здесь.
Ответ 2
Вы можете показать им строку в Bjarne Stroustrup book, определяющую стандарт, где она заявляет об этом: поскольку это канонический стандарт для языка, он не открыт для обсуждения. К сожалению, у меня нет копии, чтобы найти ее сами.