От: | Аноним | ||
Дата: | 05.08.11 05:06 | ||
Оценка: |
........................
#include <fstream>
#include <boost/serialization/string.hpp>
#include <boost/archive/xml_iarchive.hpp>
#include <boost/archive/xml_oarchive.hpp>
#include <boost/serialization/nvp.hpp>
class trn
{
private:
friend class boost::serialization::access;
int id;
std::string name;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & BOOST_SERIALIZATION_NVP(id);
ar & BOOST_SERIALIZATION_NVP(name);
}
public:
trn(){};
trn(int id_, std::string name_) : id(id_), name(name_) {};
};
int _tmain(int argc, _TCHAR* argv[])
{
trn a1(1, "test");
std::ofstream ofs("1.xml");
{
boost::archive::xml_oarchive oa(ofs);
oa << a1;
}
return 0;
}
d:\lib\boost_1_46_1\boost\archive\basic_xml_oarchive.hpp(92) : error C2664: 'boost::mpl::assertion_failed' : cannot convert parameter 1 from 'boost::mpl::failed ************boost::serialization::is_wrapper<T>::* ***********' to 'boost::mpl::assert<false>::type'
1> with
1> [
1> T=trn
1> ]
1> No constructor could take the source type, or constructor overload resolution was ambiguous
1> d:\lib\boost_1_46_1\boost\archive\detail\interface_oarchive.hpp(63) : see reference to function template instantiation 'void boost::archive::basic_xml_oarchive<Archive>::save_override<T>(T &,int)' being compiled
1> with
1> [
1> Archive=boost::archive::xml_oarchive,
1> T=trn
1> ]
1> d:\projects\c++\ruscom\test\serialization\ser2\ser2\ser2.cpp(50) : see reference to function template instantiation 'Archive &boost::archive::detail::interface_oarchive<Archive>::operator <<<trn>(T &)' being compiled
1> with
1> [
1> Archive=boost::archive::xml_oarchive,
1> T=trn
1> ]
1>Build log was saved at "file://d:\Projects\C++\test\serialization\ser2\ser2\Debug\BuildLog.htm"
1>ser2 — 1 error(s), 0 warning(s)