Про исключения
В качестве зарядки посмотрел выступление парня из Яндекса. Там половину времени занимает описание причин «почему не используются исключения». По мне — херня какая-та.
Но мысль появилась и я полез в исходники FB, посмотреть на один из моих любимых деструкторов:
Semaphore::~Semaphore() { if (hSemaphore && !CloseHandle(hSemaphore)) system_call_failed::raise("CloseHandle"); }
До сих пор не исправлен. Потому что: