
Hi Robert, Let me just answer a simple point tonight. You'll get my reply to the rest of the mail in the morning. On Oct 11, 2005, at 6:45 PM, Robert Ramey wrote:
3. I had to introduce a new strong typedef in basic_archive.hpp:
BOOST_STRONG_TYPEDEF(std::size_t, container_size_type) BOOST_CLASS_IMPLEMENTATION(boost::archive::container_size_type, primitive_type)
I looked at this and right away I noticed that, as written this would make all existing binary archives unreadable.
Have you looked at the following code I proposed to add for the binary_iarchives: void load_override(container_size_type & t, int){ // upto 2G objects unsigned int x; * this->This() >> x; t = container_size_type(x); } That, and the similar code for the output archives should do the trick and keep backward compatibility, or am I mistaken? However, I fully agree (and actually proposed so myself in the original mail to do:
The real fix for is:
a) bump up the library version from 3 to 4 b) alter save/load collections to use unsigned int or size_t depending upon the library version.
but I wanted to leave this to you, since this would be a change to the binary file format, which I believe should be done by you. More tomorrow when I'm awake again, Matthias