Я создал своего рода библиотеку C ++ с поддержкой интроспекции, которая позволяет, используя минимум макросов и изрядное количество хитрости шаблонов, объявлять структуры и классы, которые обогащаются некоторой метаинформацией.
Эта метаинформация собирает все важные детали о каждом поле структуры / класса, который вы объявляете, и в конце истории вы можете для каждого обогащенного таким образом структуры / класса создавать XML-файл, который дампы для каждого поля, его имя, тип, длина, смещение и т. д. и т. д.
Для моей проблемы мне не нужно поддерживать поля, которые являются указателями, а только примитивные типы, массивы и контейнеры STL (векторы, списки и т. Д.)
Код, который заполняет эти метаобогащенные структуры / классы («производитель»), в определенный момент сериализует их (на данный момент это простой двоичный дамп всех примитивных типов и всех «буферов», используемых STL). контейнеры, если есть).
Теперь мне нужно начать разработку аналога «читателя», который может во время выполнения , начиная с описания xml, созданного «производителем», для доступа к различным полям хранимых данных. .
Я думаю, что это проблема динамической интерпретации словаря данных, но все, что я узнал, связано с чтением XML-данных, в то время как у меня есть двоичные данные и их XML-описание ...
Как лучше всего начать с этого? Есть ли что-то, что напоминает эту проблему, и что я мог бы получить вдохновение?