Re[4]: Обработка ошибок в деструкторе своего умного указател
От: Sm0ke Россия ksi
Дата: 23.12.22 17:55
Оценка:
Здравствуйте, andyp, Вы писали:

A>Здравствуйте, Sm0ke, Вы писали:



S>>Сам clear() напрямую ничего не кидает. Но в нём set и list могут бросить.


A>Ну да, это и имел в виду. Вместо try-catch надо сделать scope guard, который в конструкторе запомнит std::uncaught_exceptions() перед вызовом clear, а после, в своем деструкторе, почистит что надо, если счетчик std::uncaught_exceptions() увеличился.


A>Пример такой штуки есть в https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4152.pdf


Что мне это даст? Я должен решить вызывать ли метод unset() у m_target или нет. Но это будет известно только когда clear() отработает до конца.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.