Введение к обещанию без исключений в C++
Спецификатор noexcept ставят после списка параметров и фиксирует отсутствие исходящих исключений.
Проверить обещание для уже объявленной функции
помогает оператор noexcept в выражении.
Запишем пустую функцию с запретом и выведем
результат проверки:
#include <iostream>
void f() noexcept {
}
int main() {
std::cout << std::boolalpha << noexcept(f()) << "\n";
return 0;
}
Для f выражение дает истину, потому что
сигнатура явно помечена noexcept.
Такой ответ удобен в шаблонах и при выборе
безопасной перегрузки.