Hello and thx
I guess that means I cannot change class state in my save method.
That is what I need ! Is there any way around it ?
regards, Oliver
On Nov 8, 2007 3:47 PM, Oliver Mutz
Hello Oliver,
Your save method has to be const.
Regards
Oliver
________________________________
Von: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] Im Auftrag von Oliver Kania Gesendet: Donnerstag, 8. November 2007 15:16 An: boost-users Betreff: [Boost-users] [Boost Users] Serialization: problems when splittingserialize into load / save
Hello out there ! I have an urgent problem concerning boost::serialize. I have split the serialize operation into save / load as described in the tutorial: =================================================== template<class Archive> void save( Archive &ar, unsigned int version) { m_offlineMode = true; // we cannot load more when offline --> always cachedAll bool oldCachedAll = m_CachedAll; m_CachedAll = true; ar & m_CachedAll; ar & m_offlineMode; // do not serialize the lock -- use the default constructor. // we assume that no iterators that lock the cache do exist when serializing. // ar & m_Lock; ar & m_LookupId; ar & m_LookupName; ar & m_SequenceNumber; //reset old state for the case we want to continue working m_CachedAll = oldCachedAll; m_offlineMode = false; }
template<class Archive> void load( Archive &ar, unsigned int version) {
ar & m_CachedAll; ar & m_offlineMode; // do not serialize the lock -- use the default constructor. // we assume that no iterators that lock the cache do exist when serializing. // ar & m_Lock; ar & m_LookupId; ar & m_LookupName; ar & m_SequenceNumber; //reset old state for the case we want to continue working } BOOST_SERIALIZATION_SPLIT_MEMBER() ===============================================================
The class I serialize is part of a deep class hierarchy that I want to serialize as a whole. With the standard serialize() it seems to work, but now the compiler complains ( when I want to perform the actual serialization):
error C2662: 'void jedox::palo::AbstractCache
::save<Archive>(Archive &,unsigned int)' : cannot convert 'this' pointer from 'const jedox::palo::AbstractCache ' to 'jedox::palo::AbstractCache &' AbstractCache is the class containing the above load / save operations
kind regards, Oliver
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users