От: | Аноним | ||
Дата: | 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)
От: | Mazay | ||
Дата: | 05.08.11 05:18 | ||
Оценка: |
А> {
А> boost::archive::xml_oarchive oa(ofs);
А> oa << a1;
А> }
А>
А>d:\lib\boost_1_46_1\boost\archive\basic_xml_oarchive.hpp(92) : error C2664: 'boost::mpl::assertion_failed' : cannot convert parameter 1 from
// If your program fails to compile here, its most likely due to
// not specifying an nvp wrapper around the variable to
// be serialized.
BOOST_MPL_ASSERT((serialization::is_wrapper< T >));
От: | Аноним | ||
Дата: | 05.08.11 05:58 | ||
Оценка: |
M> // If your program fails to compile here, its most likely due to
M> // not specifying an nvp wrapper around the variable to
M> // be serialized.
M> BOOST_MPL_ASSERT((serialization::is_wrapper< T >));
M>
<?xml version="1.0" encoding="windows-1251"?>
<Packet0 Date="2009-12-31" Code="01">
<Payer Persona="20000000002301" DopID="238031">
<Name>Иванов Иван Иванович</Name>
</Payer>
</Packet0>