У меня есть вектор структур с ++, и мне нужно поместить это в управляемый типизированный набор данных.
std::vector<Record*> record_collection;
class Record{
public:
Record(){};
virtual ~Record(){};
virtual void serialize(std::ostream& dest){
dest << "Record" << std::endl;
}
};
Запись * является базовым классом — мне нужно обработать производный класс. Типичный пример
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;
};
};
По сути, мне нужно воспроизвести метод сериализации, за исключением того, что мне нужно сделать DataColumns для t_str
, t_int
, а также t_double
введите соответствующие столбцы, а затем вставьте в них значения.
Я могу отредактировать все, что требуется в данный момент, но мне нужно настроить шаблон так, чтобы все, что реализует запись, могло иметь своих членов данных, могло быть сериализовано в управляемый набор данных с типизированными столбцами.
Кто-нибудь может посоветовать образец или предложение, которое поможет? Я мог бы сделать это с проверкой кортежа, если бы это был Python, но в c ++ 11 кортеж должен быть предопределенного типа.
Проблема здесь в том, что я не могу скомпилировать запись или TestRecord с / cli, и в этом случае я могу передать данные в запись и позволить ей заполнить ее самому — поэтому я ищу лучшее решение, чем те, которые у меня есть:
а) Написать управляемую оболочку для каждый производный класс
б) сделать тип проверки.
Есть шаблон, который я пропустил?
Спасибо,
Мелани
Задача ещё не решена.
Других решений пока нет …