Я новичок в сериализации, и у меня возникли проблемы с сериализацией std::vector
объектов с помощью библиотеки Cereal. Вот пример, иллюстрирующий проблему:
class MyClass
{
int x, y, z;
class MyOtherClass
{
string name, description;
public:
template<class Archive>
void serialize(Archive & archive)
{
archive(name, description);
}
};
vector<MyOtherClass> Victor;
vector<int> ints;
public:
template<class Archive>
void serialize(Archive & archive)
{
archive(x, y, z, ints); // error C2338: cereal could not find any output serialization functions for the provided type and archive combination.
}
};
Попытка сериализовать объект ints
или объект Victor
приводит к error C2338: cereal could not find any output serialization functions for the provided type and archive combination.
Вот код, который я использую в функции main
:
MyClass MyObject;
ofstream datafile(path, ios::binary);
{ cereal::BinaryOutputArchive oarchive(datafile); oarchive(MyObject); }
Что я делаю не так?
#include <cereal/types/vector.hpp>
. Поскольку ваш пример неполный, трудно сказать, но это мое предположение. - person spectras   schedule 27.10.2017