Boost c ++ сериализация char *

У меня есть класс, и я пытаюсь сериализовать 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;
    }
};

Я даже пытался это сделать, но он все еще не работает не работает:

    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(): stream error

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;
}
5
задан user459811 24 February 2011 в 22:10
поделиться