Может ли main () иметь спецификацию исключений?

В стандарте C ++ может main функция имеет спецификацию исключения?

Например, законно ли следующее?

int main() noexcept {}

1

Решение

Да, это полностью законно. Там нет формулировки в стандарте C ++ (в [Basic.start.main], [Except.spec], или в другом месте), что запрещает это.

Даже в C ++ 17 и более поздних версиях, где спецификации исключений являются частью типа функции, main ограничен только в его связи и типе возврата в соответствии с [Basic.start.main # 2]:

Реализация не должна предопределять main функция. Эта функция не должна быть перегружена. Его тип должен иметь связь с языком C ++ и иметь объявленный тип возвращаемого типа. int, но в остальном его тип определяется реализацией.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]