
Jody Hagins wrote:
On Wed, 16 May 2007 16:25:25 +0200 Marcus Lindblom <macke@yar.nu> wrote:
FWIW, The Xerces C++ API uses the same techinique to version their libraries. It also has issues with forward declaration, as that, also,
needs to be done in the correct namespace.
Right... What type of feedback has there been to this approach among the Xerces users/developers?
More meaningful, as it pertains to boost, is it something that has been received warmly, or with disdain? I know nothing about Xerces, so... how is its size relative to the size of boost, and does this approach seem to be something viable for boost?
I don't have sufficient knowledge to answer in full. I've only used Xerces a little bit. So, my own subjetive 0.02€: Xerces is pretty large, it has a lot of classes, etc. However, it's completely void of templates, if that would matter. The techinique appears very non-intrusive for users of a single version (except for forward declarations). I'm sure one can come up with a recommeded scheme that would simplify things (i.e. for the author FooLib to define FOOLIB_BOOST_VERSION and use that). However, there are a few places in boost that export "global" variables, such as the placeholders (IIRC they go in the anonymous namespace). It could add some additional testing burden. (Worst case: Test to include every boost file with every other boost file, both of every version supporting this scheme.) But I'm sure there are others who are more familiar with this technique and it's potential pitfalls. Cheers, /Marcus