Страницы

Поиск по вопросам

понедельник, 23 декабря 2019 г.

Можно ли объявить функцию main как noexcept?

#cpp


Можно ли объявить функцию main как noexcept?

int main() noexcept {}


Компилируется нормально на ideone https://ideone.com/Pag79s
    


Ответы

Ответ 1



До C++17 было можно, начиная с C++17 - нельзя. Но компиляторам разрешается поддерживать такое (как и любое другое 'нетрадиционное') объявление main. [basic.start.main]/2 2 ... An implementation shall allow both (2.1) — a function of () returning int and (2.2) — a function of (int, pointer to pointer to char) returning int as the type of main ([dcl.fct]). Заметьте, написано "as the type of main". noexcept является частью типа функции (начиная с С++17), так что раз он не упоминается, то ставить его нельзя. На англоSO есть схожий вопрос: Can main() have an exception specification?

Комментариев нет:

Отправить комментарий