Нарушение запрета в C++
Нарушение noexcept наступает, когда исключение выходит из функции, объявленной с запретом.
Стандарт в этом случае вызывает
std::terminate - аварийное завершение
без обычного перехвата. Поэтому в теле
такой функции нельзя допускать необработанный
throw наружу: либо не бросают, либо
перехватывают внутри до выхода.
Рабочий пример - безопасное сложение без
исключений, помеченное noexcept:
#include <iostream>
int add_quiet(int left, int right) noexcept {
return left + right;
}
int main() {
std::cout << add_quiet(3, 5) << "\n";
return 0;
}
Объявите int mul_quiet(int a, int b) noexcept
как произведение аргументов. Выведите
результат для 6 и 7.
Напишите bool in_range(int x) noexcept,
истинную для 0..9 включительно.
Выведите ответ для 4 и 12.