Кому: Степан Райко:
ConistingClass динамически создается во время выполнения.
Матье М:
Похоже, что авторы Boost могли застрять в «фиаско глобальной инициализации».
Согласно комментарию о std :: vector, я использую простые массивы, потому что код очень параллельный, и я ожидаю переместить часть его в CUDA от NVidia. CUDA в настоящее время не поддерживает C ++, только C. Кроме того (хотя это и не так важно) я чувствую себя достаточно свободно, работая с динамическими массивами и явно освобождая память после ... плюс производительность является большим приоритетом. Я использовал std :: vector и smart / auto ptrs в местах, которые мне показались подходящими.
Согласно комментарию о неявном этом, да, вы, вероятно, правы ... Я не уверен, что я думал, когда я сделал это явным. Вот код сериализации, который находится в классе objectArray:
template [class Archive] // заметьте, что для этого поста нужно было сменить браслет
void serialize (Archive & ar, const unsigned int version)
{
// только сохранять / загружать имя_А для новых архивов
// if (версия> 0)
// ar & A_name;
ar & PatternsMap;
} * * тысяча двадцать-один
void store (objectArray s, const char имя файла)
{
// create and open a character archive for output
std::ofstream ofs(filename);
boost::archive::text_oarchive oa(ofs);
// write class instance to archive
oa << s;
// archive and stream closed when destructors are called
}
void load (objectArray s, const char имя файла)
{
std::ifstream ifs(filename);
boost::archive::text_iarchive ia(ifs);
// read class state from archive
ia >> s;
// archive and stream closed when destructors are called
}