/ / W serializacji Boost wskaźnik boost_shared nie kompiluje się. Daje błąd - c ++, visual-studio-2012, serializacja, boost

W serializacji Boost, wskaźnik boost_shared nie kompiluje ... daje błąd - c ++, visual-studio-2012, serializacja, boost

Próbuję serializować współużytkowany wskaźnik za pomocą boost, ale daje błąd: Błąd 1 błąd C4308: ujemna stała całkowa konwertowana na typ bez znaku c: usersallworkhopelibboost_1_55_0boostmplprint.hpp 51 1 Wejście

Próbowałem nawet rozwiązania podanego w linku - https://stackoverflow.com/questions/22409755/boost-serialization-fails-gives-compile-time-error-c4308 ale nadal istnieje problem.

Jeśli komentuję wiersz - „ar & MyStruct;” błąd gaśnie. Daj mi znać, gdzie występuje błąd lub problem dotyczący bieżącego kodu.

Poniżej znajduje się kod:

// plik MyStruct.hpp

struct MyStruct
{
std::string rollno;
std::string address;
***boost::shared_ptr<MyStruct> Mydata;***

private:
friend class boost::serialization::access;
template
void serialize(Archive &ar, const unsigned int version)
{
ar & rollno;
ar & address;
ar & Mydata;
}

public:
MyStruct(void);
MyStruct(const parameter_strings & parms);

virtual ~MyStruct(void);
};
}

// MyStruct.cpp file

MyStruct::MyStruct(void)
{
}

MyStruct::~MyStruct(void)
{
}

MyStruct::MyStruct(const parameter_strings & parms)
{
// implementation
}

BOOST_CLASS_EXPORT_IMPLEMENT(MyStruct);   BOOST_CLASS_IMPLEMENTATION(MyStruct,boost::serialization::object_serializable);
BOOST_CLASS_TRACKING(MyStruct,boost::serialization::track_selectively);

Odpowiedzi:

0 dla odpowiedzi № 1

Nie zapomnij dołączyć

#include <boost/serialization/serialization.hpp>
#include <boost/serialization/shared_ptr.hpp>