Ключевое слово noexcept может быть соответствующим образом применено ко многим подписям функций, но я не уверен в том, когда я должен рассмотреть его на практике. Основываясь на том, что я прочитал до сих пор, в последнюю минуту добавление noexcept , по-видимому, решает некоторые важные проблемы, которые возникают, когда бросают конструкторы перемещения. Тем не менее, я все еще не могу дать удовлетворительные ответы на некоторые практические вопросы, которые заставили меня прочитать больше о noexcept < /code> в первую очередь. Должен ли я добавлять noexcept к объявлению функции во всех таких случаях? Для каких ситуаций я должен быть более осторожен с использованием noexcept , и для каких ситуаций я могу сойти с рук с подразумеваемым noExcept (false) ? В частности, приведите пример кода, для которого компилятор C ++ способен генерировать лучший машинный код после добавления noExctempt .
Лично я забочусь о noexcept из -за повышенной свободы, предоставленной компилятору, чтобы безопасно применять определенные виды оптимизации. Получают ли современные компиляторы Noexcept таким образом? Если нет, могу ли я ожидать, что некоторые из них сделают это в ближайшем будущем?
Подробнее здесь: https://stackoverflow.com/questions/107 ... e-noexcept