C++ again.

Mar 13, 2012 15:08

Очень заманчиво в c++-деструкторах писать некое автоматическое действие - закрытие скобочки XML-ноды, репортить время исполнения, флюшить буфера...

Но увы, такие операции обычно вовсе не nothrow, а throw из деструктора - это мммм невнятная диагностика, мягко говоря. Страуструп решил, что достаточно написать "так делать нельзя" и никто делать не будет. Наивный ученый!

Кстати, по той же причине лучше flush output-файлу делать не в деструкторе, а вручную в конце. А то как вы обработаете пофейлившийся flush внутри close в деструкторе? Желающие могут поэкспериментировать с выдергиванием флешки, на которую пишется буферизующийся файл и со sleep.


c++

Previous post Next post
Up