tengo una clase y yo estoy tratando de serializar un shared_ptr pero el método normal de la serialización de un objeto no está funcionando:Boost C++ serializar un char *
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;
}
};
incluso he intentado de esta manera, pero todavía no funciona:
void serialize(Archive &ar, const unsigned int version)
{
for (int i = 0; i < (strlen(objectone.get())); i++)
ar & objectone.get()[i];
}
¿Alguna idea de cómo abordar esto? Gracias.
Alguna información adicional:
ya he incluido dos archivos de cabecera shared_ptr:
#include <boost/serialization/shared_ptr.hpp>
#include <boost/serialization/shared_ptr_132.hpp>
he intentado convertir en una cadena y serializarlo de esa manera pero produce el siguiente error : impulso :: artículos :: archive_exception' lo que(): flujo de 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;
}
shared_ptr no hace lo que parece pensar que hace. No puedes tratarlo como una cadena porque no es una cadena. Es un puntero inteligente para un solo personaje. –
Alan