2016-04-27 16 views
0

構造体のオブジェクトをプログラムで作成し、フィールド値? (JSON)ファイルからエントリを読み込んで構造体を埋める必要があるとします。私は値の構造体の名前と値を持っていますが、コードですべての構造体をループしてメモリ内のデータを埋め込むようにしたいと考えています。奇妙に聞こえるかもしれませんが、方法はありますか?構造体のオブジェクトをプログラムで作成し、構造体名とフィールド値のリストを持つときにフィールドを埋め込むことは可能ですか?

+0

あなたは 'struct'でそれを行うことはできませんが、あなたはユーザー定義型を使ってそのようなデータ構造を作ることができます。あなたのためにこれを行う 'json'ライブラリの束があります。 – Galik

答えて

1

いいえ。あなたが探している言語機能は、反射と呼ばれ、C++はそれを持っていません。

代わりにstd::map<std::string, SomeType>を作成できますか?フィールドによってSomeTypeが異なる場合、boost::variantは任意の時点で複数のタイプのいずれかを保存することができます(基本的にタグ付きのユニオンです)。

また、Pythonに切り替えることもできます。 :)

+0

Variadicテンプレートでは不可能ですか?私たちのライブラリの使用は非常に制限されており、C++ 11コンパイラ – sach

+0

を使用しています。Variadicテンプレートは、可変数のテンプレート引数を持つクラス/関数テンプレートを作成できるコンパイル時の構造です。 –

関連する問題