
Emil Dotchevski wrote:
Because serialize/load/save are function templates, and because all serialize/load/save calls made from inside another serialize/load/save function template depend on a template parameter (the Archive type), in principle the serialization of a given class foo can be defined in foo.hpp without including any boost serialization headers,
agreed.
however this is not possible if BOOST_CLASS_EXPORT is used, because its purpose is to trigger the registration automatically just because foo.hpp is #included.
I don't think that's true. It was that code was only instantiated when an archive class header was also included. But this implied a header ordering requirement when some found difficult to live with. This was addressed in the HEAD so that there is no restriction on header order. My understanding was that this wouldn't change anything other than fixing the header ordering restriction. Robert Ramey