boost@iyates.com wrote:
Thanks. If I changed the order of the members being serialized it worked fine. Weird.
However, I am running into a problem. I am using reference counted Smart Pointers. If I serialize the reference counter, then when it is loaded it will likely contain too large of a reference count because there were more objects referencing the pointer when it was saved than when it was loaded. However, it works fine it just doesn't properly delete the objects because the reference count never reaches 0.
If I don't serialize the reference count then the objects try to delete themselves while boost is loading them from the file. I'm guessing because of the order everything happens, the final destination isn't increasing the reference count until after boost already dereferences it.
Any suggestions?
I'm not sure which reference counted Smart Pointer you're using. If you use the boost smart_ptr, its already has serializaiton done. If you want to add serialization to your own Smart Pointer, you can look at how it was done for the boost smart pointer - now there are two versions so you have lots of ideas available. Robert Ramey