atReturn()

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

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

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

Ответить