How can I serialize a class (with boost::serialization ) that contains boost::optional ?
those. The following code will throw an error when instantiating.
error C2039: "serialize": is not a member of "boost :: optional" C: \ boost \ boost_1_55_0 \ boost \ serialization \ access.hpp 118
#include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> class MyClass { private: friend class boost::serialization::access; template<class Archive> void serialize(Archive & ar, const unsigned int version) { ar & my_member; } boost::optional<int> my_member; }; int main() { std::ofstream ofs("filename.txt"); const MyClass g; boost::archive::text_oarchive oa(ofs); oa << g; return 0; }
I understand that there may be a deeper question (what should you write to the file when the value is missing?), But there must be some standard solution for this. I am looking for the easiest way to solve this problem.
source share