Здравствуйте, rg45, Вы писали:
M>>Ну, а) макросы, б) ты описываешь свои данные, а не чужие, заданные кем-то другим даже не в виде перечислений, а тупо макросами
R>Я специально привёл одну из наиболее древних реализаций, которая закладывалась ещё на базе C++03, когда не было даже макросов с переменным числом параметров. Тем не менее, эта реализация позволяла реализовывать унифицированные процедуры, которые работали сразу для всех типов. Например, я был избавлен от необходимости писать процедуры сериализации для каждой структуры в отдельности (коих овер-дохрена).
Ну, я в своё время наткнулся на статью местную —
C++: метаданные своими руками. Чтение/запись простых Xml-файлов из программы на классическом С++Автор(ы): Андрей Мартынов
Дата: 30.11.2003
В статье рассмотрен декларативный подход к решению задачи чтения/записи XML-файлов из программ на классическом C++. Метод основан на построении специальной структуры статических данных — метаданных типов.
Мне подход понравился, я его под себя подпилил и долго использовал. Но там структуры данных не замусориваются конструкциями, аналогичными твоим, с другой стороны, есть минус — надо самому отдельно описывать раскладку для сериализации. Но зато можно иметь несколько разных раскладок. Процедуры же ручками писать не надо, там всё автоматом работает на базе описательных раскладок (layout)