У меня есть класс, и я пытаюсь сериализовать shared_ptr, но обычный метод сериализации объекта не работает:
class Object {
public:
Object();
~Object();
shared_ptr<char>objectone;
friend class boost::serialization::access;
template <typename Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar & objectone;
}
};
Я даже пытался сделать это таким образом, но он все еще не 't работа:
void serialize(Archive &ar, const unsigned int version)
{
for (int i = 0; i < (strlen(objectone.get())); i++)
ar & objectone.get()[i];
}
Есть идеи, как подойти к этому?Спасибо.
Дополнительная информация:
Я уже включил оба заголовочных файла shared_ptr:
#include <boost/serialization/shared_ptr.hpp>
#include <boost/serialization/shared_ptr_132.hpp>
Я попытался преобразовать в строку и сериализовать ее втаким образом, но выдает следующую ошибку: boost :: archive :: archive_exception 'what (): ошибка потока
friend class boost::serialization::access;
template <typename Archive>
void serialize(Archive &ar, const unsigned int version)
{
if (objectone.get()) {
string temp(objectone.get());
ar & temp;
}
ar & objectone;
}