ある種の内省を可能にするC++ライブラリを設定しました。これにより、最小限のマクロとかなりの量のテンプレートトリックを使用して、メタ情報が豊富な構造とクラスを宣言できます。
このメタ情報は、宣言する構造体/クラスの各フィールドに関するすべての重要な詳細をキャプチャし、ストーリーの最後に、このように強化された構造体/クラスごとに、ダンプするxmlファイルを生成できます。各フィールド、その名前、タイプ、長さ、オフセットなど。
私の問題では、ポインターであるフィールドをサポートする必要はありませんが、プリミティブ型、配列、およびSTLコンテナー(ベクトル、リストなど)のみをサポートする必要があります。
これらのメタエンリッチな構造体/クラス(「プロデューサー」)にデータを入力するコードは、特定の時点でそれらをシリアル化します(今のところ、すべてのプリミティブ型と、STLコンテナーによって使用されるすべての「バッファー」の単純なバイナリダンプです。どれか)。
次に、「プロデューサー」によって作成されたxml記述から始めて、保存されたデータのさまざまなフィールドにアクセスするために、実行時に対応できる「リーダー」の開発を開始する必要があります。
これは動的データディクショナリ解釈の問題だと思いますが、私が知っていることはすべて、バイナリデータとそのxml記述を持っている間にxmlデータを読み戻すことに関連しています...
これを始めるための最良の方法は何ですか?この問題に似ていて、私がインスピレーションを得ることができる何かがそこにありますか?