Open apolukhin opened 3 years ago
yndx-antoshkka, 31 августа 2018, 13:43 Идея хорошая, но могут возникнуть проблемы: в данный момент стандарт позволяет имплементациям стандартной библиотеки добавлять noexcept в произвольных местах. Таким образом, код с noexcept! может собираться с одной стандартной библиотекой, но не собираться на другой версии стандартной библиотеки. Это неприятный момент, надо что-то придумать в этом месте.
Konstantin Stupnik, 2 сентября 2018, 16:40 yndx-antoshkka,
Ну потребуется уточнение noexcept-ности многих методов стандартной библиотеки... Учитывая, что noexcept это всё же, в том числе, оператор, получается, что необязательность noexcept уже может привести к тому, что код как минимум будет компилироваться по разному для реализаций STL разных компиляторов.
Перенос предложения: голоса +13, -0 Автор идеи: Konstantin Stupnik
Попросить компилятор проверить, что всё, что написано в noexcept! функции/методе является noexcept (уже не обязательно строгим).
Ну и соответственно все вызовы в noexcept! функции/методе, которые не noexcept должны быть в try/catch блоках с обязательным присутствием catch(...).
Не обложенные try/catch вызовы должны генерировать ошибку компиляции.