On Mon, Dec 6, 2010 at 4:05 PM, Piotr Trojanek wrote: > Yes, I have tested the archive with std::vector and it simply works. > > I guess it works also for any collection, which is supported by > Boost::serialization framework. > The magic is in the header, not in the > archive itself. > > For any primitive type always the same xdr_* function is called, so (by the > design of XDR) > it does not matter if the caller is 32 or 64 bit (nor if little/big endian). > Interesting. collection_size_type is std::size_t: BOOST_STRONG_TYPEDEF(std::size_t, collection_size_type) and in some implementations std::size_t is 'unsigned long'. If you then use this implementation on two platforms where 'unsigned long' have different sizes, you will get incompatible archives. In my experience with portable binary archives (we are going way back to boost 1.32), it was necessary to choose a size (e.g. handle collection_size_type explicitly and cast to uint64_t, for example). Cool archive, in any event. boost::serialization is incredibly useful stuff. -t