
Thinking about this while I was trying to sleep my thoughts on this clarified a little There are really two things going on here. a) There is a use using an archive. This is very similar to a user using a collection. He needs a description of the user interface for the collection class. This is essentially a list of requirements on the collection class template arguments and a list of member functions. The achive classes have no template arguments so the archive concept description fills the role. It is also very analogous to the standard class header. b) There are facilities for creating a new archive class. These would be most analogus to the boost iterator. The archive classes use CRTP. Actually this part has been considered an implementation detail given the common interface to all archives described in the archive concept. Hence its not really described in the documentation at all. I suspect that part of any confusion is that one is expecting to find b) but finds only a). If one is looking for a) then he never notices that b) isn't there. Robert Ramey