Может ли main() иметь спецификацию исключений?
В стандарте C++ может main
функция имеет спецификацию исключения?
Например, законно ли следующее?
int main() noexcept {}
1 ответ
Да, это полностью законно. В стандарте C++ (в [basic.start.main], [кроме.spec] или где-либо еще) нет формулировок, запрещающих это.
Даже в C++17 и более поздних версиях, где спецификации исключений являются частью типа функции, main
ограничен только в его связи и типе возврата согласно [basic.start.main # 2]:
Реализация не должна предопределять
main
функция. Эта функция не должна быть перегружена. Его тип должен иметь связь с языком C++ и иметь объявленный тип возвращаемого типа.int
, но в остальном его тип определяется реализацией.