This question comes up repeatedly. I'm sure this is because the "tradional" way of transmitting data is to first define a format and then write code to implment it. The serialization system is backwards in this regard. The format is driven by the composition of C++ data structures that are being saved/loaded. The system works by guarenteeing that the tree created by composition of C++ data structures is traversed in the same sequence both on saving and loading. Hence there is almost no need for any apriori specification as to the sequence of data or content of the archive. It is for this reason, that there can be archives of different formats as long as they are defined in compatible pairs. In fact, different formats can be used simultaneously. It is a common desire to interface with the archives generated. This might be possible in some cases but unlikely to be successful generally. This is due to the fact that the "format" is dependent on the C++ data structures that drive it and would be changed if the program changes. It is this same dependency which makes the serialization system (almost) totally automatically applicable to every C++ program and adjustable as the C++ code evolves. As I said, this is different that what many people expect and takes some getting used to. Robert Ramey Merrill Cornish wrote:
What external file format does the Boost Serialization Library use?
The introduction to the library states the requirement that serialization written by one machine must be readable by a different machine. And, elsewhere, it mentions that and XML intermediate file is on possibility; but I can't seem to find what the format being used is.
Merrill