私はクエリを持っています。私は、列名とネイティブデータ型を含むフラットファイル(たとえば、file1、file2など)のセットを持っています。 (どのように値が格納され、C++で読み取ることができるかは小文字です) 例:フラットファイルfile1は、 col1_name = id、col1_type = integer、col2_name = Name、col2_type = stringなどのデータを持つことができます。実行時にクラスを作成するC++、
したがって、各フラットファイルに対して、メンバ変数名は列名と同じ名前で、データ型はintのようなC++のネイティブデータ型になります(つまり、フラットファイル= 1のデータ構造)。 、フロート、ストリングなどのフラットファイルの列の種類に応じて。例えば上から :私のフラットファイル1が宣言
class file1{
int id;
string Name;
};
の下に私を与える必要があり、私は一度作成されたバイナリは、フラットファイルを読み込み、ファイルに基づいてデータ構造を作成するC++、(でコードを書くことができる方法はありますクラス名はフラットファイル名と同じになります)。これらのフラットファイルを使用して作成されたすべてのクラスは、getterおよびsetterメンバ関数の共通の機能を持ちます。
先ほど同様のことをしたことがありましたら、教えてください。
申し訳ございません。代わりにバリアントデータ型に文字列(プロパティ名)のマップのようなものを使用する必要があります。 – Jon
実行時にC++でクラス定義を作成することはできません。スクリプト言語やC++を使用して、そのようなフラットファイルを読み込み、ソースファイルを吐き出して後でコンパイルすることができます。 –
私は決して['boost :: any'](http://www.boost.org/doc/libs/1_48_0/doc/html/any.html)を使ったことはありません。それは@ rockyの問題を解決するのに役立つでしょうか? –