Здравствуйте, Кодт, Вы писали:
К>А вот честно скажи: это академический интерес, или у тебя в реальном коде такое появилось? Если последнее — то ужас-ужас-ужас!
Я использую исключения типа указатели на функции для реализации диспецеризации событий, в спецификации исключений перечисляются валидные в данном контексте события, в set_unexpected у меня цепочка обработчиков, реализующих логику приведения типов событий. Обычно эти исключения кидаются из деструкторов. Ещё я использую экспорт шаблонов для инкапсуляции, чтобы определения шаблонов были в другой области видимости, чем их объявления. Ещё у меня всё наследование виртуальное, чтобы можно было пользоваться доминированием. Я не злоупотребляю виртуальными деструкторами. Ещё я использую асемблерные трюки для реализации бинда, чтобы реазультирующий тип был обычная функция.