Строгий noexcept!

Konstantin Stupnik
Konstantin Stupnik

Ну и соответственно все вызовы в noexcept! функции/методе, которые не noexcept должны быть в try/catch блоках с обязательным присутствием catch(...).

Не обложенные try/catch вызовы должны генерировать ошибку компиляции.

 

7
рейтинг
2 комментария
yndx-antoshkka

Идея хорошая, но могут возникнуть проблемы: в данный момент стандарт позволяет имплементациям стандартной библиотеки добавлять noexcept в произвольных местах. Таким образом, код с noexcept! может собираться с одной стандартной библиотекой, но не собираться на другой версии стандартной библиотеки. Это неприятный момент, надо что-то придумать в этом месте.

yndx-antoshkka
Konstantin Stupnik

yndx-antoshkka,

Ну потребуется уточнение noexcept-ности многих методов стандартной библиотеки... Учитывая, что noexcept это всё же, в том числе, оператор, получается, что необязательность noexcept уже может привести к тому, что код как минимум будет компилироваться по разному для реализаций STL разных компиляторов.

Konstantin Stupnik
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения