У меня есть код, который я хочу построить. В коде используется класс boost :: ptr_map для сериализации определенных объектов. У меня есть Visual Studio 2008 с boost1.38, и я получаю следующую ошибку от компилятора. Интересно, видел ли кто-нибудь подобное?C++ Boost ptr_map ошибка сериализации
C2039: «сериализации»: не является членом «буст :: ptr_map»
Похоже, некоторые ссылки не хватает, и мне интересно, что это такое, я не вижу никакого наддува/сериализации/ptr_map. У меня Googled много, и ничто не оказалось жизнеспособным. Я создал образец кода, который генерирует ту же ошибку ниже
#include <fstream>
#include <iostream>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
#include <boost/config.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/ptr_container/ptr_map.hpp>
#include <boost/serialization/string.hpp>
#include <boost/serialization/version.hpp>
#include <boost/serialization/split_member.hpp>
using namespace std;
class User
{
boost::ptr_map<std::string, string> ptrmap;
public:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & ptrmap;
}
bool save(const std::string& filename)
{
ofstream ofs(filename.c_str());
if(ofs.good() == false)
{
return false;
}
try
{
boost::archive::text_oarchive oa(ofs);
oa << (*this);
}
catch(...)
{
throw;
}
return true;
}
};
int main()
{
User user;
user.save("C:\\test.db");
return EXIT_SUCCESS;
}
Любая помощь приветствуется.
У меня есть этот код, который успешно компилируется раньше, и я считаю, он был построен с использованием Visual Studio 2005 т.е. VC8 компилятор Я собираюсь отправить его в список рассылки наддува слишком – Faheem
Это, см HTTP: // WWW. boost.org/doc/libs/1_39_0/libs/ptr_container/doc/reference.html#serialization –