Стандарт ISO 1998 С++ указывает, что явно не использовать оператор return в основном эквивалентно использованию return 0
.
Но что, если в реализации есть другой стандартный код "без ошибок", например -1
?
Почему бы не использовать стандартный макрос EXIT_SUCCESS
, который будет заменен либо на 0
, либо -1
, либо на любое другое значение в зависимости от реализации?
С++, похоже, заставляет семантику программы, которая не является ролью языка, который должен описывать только поведение программы. Кроме того, ситуация отличается от возвращаемого значения "error": только EXIT_FAILURE
является стандартным флагом завершения ошибки, без явного значения, например, "1".
Каковы причины этих выборов?