Functions
F.46
`int` является типом возвращаемого значения для `main()`
Причина
Это языковое правило, но оно так часто нарушается через «расширения языка», что стоит его упомянуть. Объявление main (единственного глобального main программы) как void ограничивает переносимость.
Пример
void main() { /* ... */ }; // плохо, это не C++
int main()
{
std::cout << "Вот как это делается\n";
}
Примечание
Мы упоминаем это только из-за устойчивости этой ошибки в сообществе. Заметьте, что несмотря на не-void возвращаемый тип, функция main не требует явного оператора return.
Контроль
- Компилятор должен это делать
- Если компилятор не делает, пусть инструменты это отмечают