Может ли объект с деструктором бросаться в состав "..."? "C++

Программы на C++. Форум разработчиков
Anonymous
Может ли объект с деструктором бросаться в состав "..."? "

Сообщение Anonymous »

Согласно CppReference < /p>

обработчик (...) соответствует исключениям любого типа. [...] Этот обработчик может быть использован для обеспечения того, чтобы никакие не учитывались исключения из функции, которая предлагает гарантию исключения Nothro

Код: Выделить всё

struct throwing_dtor_t {
~throwing_dtor_t() noexcept(false) { throw 123; }
};

int main() {
try {
try {
throw throwing_dtor_t{};
} catch (...) {
}
} catch (int i) {
return i;
}
return 0;
}
возвращает 123. Следовательно, мы видим, что исключение ускользнуло от (...) обработчика.
Имеет ли эта программа неопределенное поведение? (Я ничего не видел в стандартном, говорящем об этом)

Подробнее здесь: https://stackoverflow.com/questions/796 ... -a-matcher

Вернуться в «C++»