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