I am trying to serialise/deserialise a simple object. I am able to serialise it:
#include <vector> #include <sstream> #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/serialization/vector.hpp> class DataClass{ public: std::vector<std::string> data; DataClass(){} ~DataClass(){} friend class boost::serialization::access; template<typename Archive> void serialize(Archive & ar, const unsigned int version) const{ ar & data; } }; int main(){ using std::cout; using std::endl; using std::string; DataClass data_obj; data_obj.data.push_back("some data 1"); data_obj.data.push_back("some data 2"); std::ostringstream archive_stream; boost::archive::text_oarchive archive(archive_stream); archive << data_obj; string str_data_to_send = archive_stream.str(); const char* data_to_send = archive_stream.str().c_str(); std::istringstream archive_stream2(data_to_send); boost::archive::text_iarchive archive2(archive_stream2); DataClass received_data_obj; //archive2 >> received_data_obj; } I receive an error if I uncomment the last statement
archive2 >> received_data_obj;
In file included from /opt/local/include/boost/archive/text_oarchive.hpp:31: In file included from /opt/local/include/boost/archive/basic_text_oarchive.hpp:32: In file included from /opt/local/include/boost/archive/detail/common_oarchive.hpp:22: In file included from /opt/local/include/boost/archive/detail/interface_oarchive.hpp:23: In file included from /opt/local/include/boost/archive/detail/oserializer.hpp:67: /opt/local/include/boost/archive/detail/check.hpp:162:5: error: static_assert failed "typex::value" BOOST_STATIC_ASSERT(typex::value); ^ ~~~~~~~~~~~~ I can not post the whole error message because my post will be "mostly code".