Может ли объект с деструктором бросаться в состав "..."? "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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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