Re: [Boost-users] Serialization newbie needs help

Robert Ramey wrote: Dominick Layfield wrote: Frank Birbacher wrote: I now noticed that the link I posted does not reference excatly whatI meant to point at. Your code makes me think that you have not readwhat I wanted you to read. Here it goes.READ THIS:http://www.boost.org/libs/serialization/doc/rationale.html#trap Well, Hector may not have read this, but I did! C'mon, c'mon ;-) And it seems that Ihave the same problem as him. After I realized what the problem was, I found that it was rathercommon. If I make the object I want toserialize a const, the (completely incomprehensible) compile errorgoes away. Any chance this could be added to a boost::serializationFAQ? you mean change the section named "rationale" to "FAQ"? Perhaps the comments before the trap (code in the hpp file), shouldhave a hyperlink. It appears that I have a choice between (i) doing a const_cast onevery object I want to save, and (ii) inserting aBOOST_CLASS_TRACKING(XXX, boost::serialization::track_never) lineinto my source code. After reading the rationale, I saw that option (ii) allows me topostpone the fight (and I took it). What is more important is that thetrap is there to remember it. Perhaps another solution would be toprovide a base class for tracking objects. This way, instead of usingthe macro, one could derive from such class: class MyClass : private boost::serialization::trackme And this "trackme" class could have parameters in the constructor tosay whether it should be tracked: MyClass()::MyClass() : boost::serialization::trackme(never) {} or MyClass()::MyClass() : boost::serialization::trackme(selectively) {} etc .. This solution would be in addition to the const-reference andBOOST_CLASS_TRACKING ones. It seems to me that a cleaner, simpler (and less ambitious) solutionwould just be to make serialization of pointers an error. I wouldn't do that. C++ must allow me to shot myself if I'm notcareful!! --------------------------------- Take the Internet to Go: Yahoo!Go puts the Internet in your pocket: mail, news, photos & more.
participants (1)
-
Hector C.