Здравствуйте, alex_public, Вы писали:
K>>Если все еще непонятно, о чем говорю — приведу пример — boost::spirit. Это просто экстремум шаблонофилии.
_>На самом деле не экстремум. Экстремум можно поискать где-то в области пересечения boost.mpl, boost.proto, boost.fusion... )
Для добавления экстремальности я бы еще добавил boost.preprocessor в эту компанию, хоть это и другой вид магии

Вот пример:
https://github.com/pmed/v8pp/blob/master/v8pp/call_from_v8.hpp — вызов С++ функции (или функции-члена) из JavaScript-движка V8. При вызове производится преобразование списка аргументов v8::Arguments из JavaScript к аргументам требуемой функции. Я не знаю как проще сделать это в С++03, только генерировать код руками/внешним скриптом.
Переписываю сейчас это на С++11 с variadic templates и радуюсь своему счастью
Или вот недавняя тема:
http://rsdn.ru/forum/cpp.applied/5776544.flatАвтор: PM
Дата: 10.09.14
Автор использует boost.fusion потому что нет пока в языке compile-time reflection, а код генерировать надо. И генерация внешними инструментами им не подходит.
Шаблоны в С++ — один из эффективнейших инструментов. Так что не удивительно, что люди пытаются попробовать применить этот инструмент по-разному.