On Mar 1, 2010, at 1:50 PM, Binh Luong wrote:
Hello,
i have some problems with the serialization of boost. I am working now with a program and want to use boost to serialize an object to a xml archive. I have read the tutorials on the homepage and make the necessary steps but still get some errors while compiling: In file included from /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/xml_oarchive.hpp:31, from message/remote/RemoteMessagingSystem.h:30, from message/remote/RemoteMessagingSystem.cpp:1: /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/basic_xml_oarchive.hpp: In member function ‘void boost::archive::basic_xml_oarchive<Archive>::save_override(T&, int) [with T = Message* const, Archive = boost::archive::xml_oarchive]’: /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/detail/interface_oarchive.hpp:64: instantiated from ‘Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(T&) [with T = Message* const, Archive = boost::archive::xml_oarchive]’ /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/detail/interface_oarchive.hpp:72: instantiated from ‘Archive& boost::archive::detail::interface_oarchive<Archive>::operator&(T&) [with T = Message*, Archive = boost::archive::xml_oarchive]’ message/remote/RemoteMessagingSystem.cpp:147: instantiated from here /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/basic_xml_oarchive.hpp:92: error: no matching function for call to ‘assertion_failed(mpl_::failed************ boost::serialization::is_wrapper
::************)’ In file included from /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/xml_iarchive.hpp:24, from message/remote/RemoteMessagingSystem.h:31, from message/remote/RemoteMessagingSystem.cpp:1: /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/basic_xml_iarchive.hpp: In member function ‘void boost::archive::basic_xml_iarchive<Archive>::load_override(T&, int) [with T = Message*, Archive = boost::archive::xml_iarchive]’: /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/xml_iarchive.hpp:80: instantiated from ‘void boost::archive::xml_iarchive_impl<Archive>::load_override(T&, int) [with T = Message*, Archive = boost::archive::xml_iarchive]’ /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/detail/interface_iarchive.hpp:61: instantiated from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = Message*, Archive = boost::archive::xml_iarchive]’ message/remote/RemoteMessagingSystem.cpp:164: instantiated from here /home/v0d0i/libraries/boost_1_42_0/include/boost/archive/basic_xml_iarchive.hpp:70: error: no matching function for call to ‘assertion_failed(mpl_::failed************ boost::serialization::is_wrapper ::************)’ make[2]: *** [RemoteMessagingSystem.o] Error 1 make[2]: Leaving directory `/home/v0d0i/workspace/trunk1/src/base' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/v0d0i/workspace/trunk1/src' make: *** [all-recursive] Error 1 It seems like there is something wrong with the Wrapper although i have defined the following Wrappers: BOOST_CLASS_IS_WRAPPER(Message*); BOOST_CLASS_IS_WRAPPER(Message* const); BOOST_CLASS_IS_WRAPPER(Message); I also used the boost::serialization::make_nvp for the name-value pairs purpose of xml archive.
What am i doing wrong?
Thanks, Ngoc Mai
You should not have to define your class as a wrapper. Can you send the code fragment that causes the problem? Matthias