У меня снова возникла проблема при сериализации общего указателя с использованием boost, и ниже приведен код:
//Файл Content.hpp
#include <boost/serialization/string.hpp>
#include <boost\serialization\shared_ptr.hpp>
#include <boost/serialization/list.hpp>
struct Content
{
std::string type;
boost::shared_ptr<Content> mycontent; // mycontent is of type Content
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar & id;
ar & name;
ar & mycontent;
}
public:
Content(void);
Content(const parameter_strings & parms);
~Content(void);
};
// файл Content.cpp
Content::Content(void)
{
}
Content::~Content(void)
{
}
Content::Content(const parameter_strings & parms)
{
// implementation part
}
если я прокомментирую строку " -- boost::shared_ptr mycontent; --" она компилируется без ошибок, но мне нужно использовать shared_ptr и, следовательно, выдает ошибку:
выдает ошибку: ошибка C4308: отрицательная интегральная константа преобразована в тип без знака
Я также включил все необходимые файлы заголовков, но проблема все еще существует.