C++ 構造体のベクトルがあり、これを管理された型指定されたデータセットに入れる必要があります。
std::vector<Record*> record_collection;
class Record{
public:
Record(){};
virtual ~Record(){};
virtual void serialize(std::ostream& dest){
dest << "Record" << std::endl;
}
};
Record* は基本クラスです。派生クラスを処理する必要があります。典型的な例は
class TestRecord:public Record{
public:
TestRecord(){};
~TestRecord(){};
std::string t_str;
int t_int;
double t_double;
void serialize(std::ostream& dest){
dest << t_int << ',' << t_double << ',' << t_str << ',' << std::endl;
};
};
基本的に、シリアル化メソッドを再現する必要がありますがt_str
、 、t_int
、およびの DataColumns を作成しt_double
、列を適切に入力してから、値を入力する必要があります。
この時点で、必要に応じて何でも編集できますが、レコードを実装するすべてのデータ メンバーを、型指定された列を持つ管理されたデータセットにシリアル化できるようにパターンを設定する必要があります。
誰でも役立つパターンや提案についてアドバイスできますか? これがPythonの場合、タプルの検査でそれを行うことができますが、c ++ 11では、タプルは事前定義された型である必要があります.
ここでの問題は、 /cli を使用してレコードまたは TestRecord をコンパイルできない可能性があることです。その場合、データテーブルをレコードに渡して、それ自体に入力させることができます。そのため、私が持っているものよりも優れたソリューションを探しています。
a)派生クラスごとにマネージ ラッパーを作成する。b) 型検査を行う。
私が見逃したパターンはありますか?
ありがとう、メラニー