Re: RFC: Польза от деструкторов локальных переменных
От: remark Россия http://www.1024cores.net/
Дата: 20.07.07 10:24
Оценка:
Здравствуйте, Не могу выдумать корректный ник АКА iZverg, Вы писали:

НМВ>Но что-то меня здесь все-таки беспокоит... Может быть, просто я начитался Саттера,

НМВ>который в "те времена" не знал ни одного хорошего использования (good use) функции
НМВ>uncaught_exception()?

std::uncaught_exception тут тоже не будет корректно работать.
Т.к. он выдаст true даже если исключение было выброшено не в этой функции, а было ещё при входе в функцию. Например, если это код выполняется внутри деструктора, который вызван в результате размотки стека, std::uncaught_exception выдаст true, даже если в этой функции не было исключений.

Есть подход запоминать результат std::uncaught_exception вначале функции, а потом стравнивать со значением в конце функции. Но он тоже ни к чему хорошему не приводит.

Тут единственный вариант делать явную переменную и в конце функции её вручную устанавливать в true, что значит, что исключений в функции не было. Тогда деструкторы смогут её проверять.



1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.