From: Marcus Lindblom (macke_at_[hidden])
Date: 2007-05-16 11:30:06
Jody Hagins wrote:
> On Wed, 16 May 2007 16:25:25 +0200
> Marcus Lindblom <macke_at_[hidden]> 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
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.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk