LG.BALUKATION's Weblog

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

atReturn()

Posted by LG.BALUKATION на 2008/04/23

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

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

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

Advertisements

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s