LG.BALUKATION’s Weblog

Ничего, это тоже кое-что… А при желании из него можно сделать что угодно

atReturn()

Опубликовал LG.BALUKATION на 2008/04/23

Не так давно один хороший человек по ошибке высказал мнение, что секция default в операторе switch выполняется каждый раз перед выходом из оператора (т. е. не только если не один case не попал, но и например если попал и потом делает return или break). На самом деле это не так, но вообщет оно натолкнуло меня на мысль о сабже…

Веть есть же atexit() ещё со времён SystemV или даже более ранних, в Solaris был немного более гибкий вариант с названием on_exit(), до сих пор поддерживаемый в glibc. А вот полезной хренью ИМХО былоб иметь аналогичную возможность и для случаев возврата из процедур/функций/методов. Но в C/C++, как я понимаю, такого нет.

Конечно, есть деструкторы у обьектов, но это всёж немного не то. Как вариант остаётся лишь написание обёрток, примерно такое предложение и выдаёт гугл наравне с линками на MSDN, говорящем то такога нед и при попытке вызвать вылетит ран-тайм ошибко.

Ответить

XHTML: Вы можете использовать эти метки: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>