В сериализации Boost указатель boost_shared не компилируется .. выдает ошибку

0

Я пытаюсь выполнить сериализацию общего указателя с помощью boost, но он дает ошибку: Ошибка 1 ошибка C4308: отрицательная интегральная константа, преобразованная в неподписанный тип c:\users\allwork\hope\lib\boost_1_55_0\boost\mpl\print.hpp 51 1 Вход

Я даже попробовал решение, указанное в ссылке - https://stackoverflow.com/questions/22409755/boost-serialization-fails-gives-compile-time-error-c4308, но проблема все еще существует.

Если строка комментария - "ar & MyStruct;", ошибка отключается. Пожалуйста, дайте мне знать, где ошибка или проблема существует в отношении текущего кода.

Ниже приведен код:

//Файл 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);
Теги:
serialization
boost
visual-studio-2012

1 ответ

0

Не забудьте включить

#include <boost/serialization/serialization.hpp>
#include <boost/serialization/shared_ptr.hpp>
  • 0
    даже после добавления вышеуказанных заголовочных файлов .. проблема все еще существует

Ещё вопросы

Сообщество Overcoder
Наверх
Меню