Boost logo

Boost :

Subject: Re: [boost] version conflicts: is there a solution?
From: Frank Mori Hess (fmhess_at_[hidden])
Date: 2009-06-28 01:55:49

On Saturday 27 June 2009, Ilya Bobir wrote:
> Ilya Bobir wrote:
> > [...]
> > Oh, according to ISO 14882-2003 3.5 paragraph 4 all functions, names
> > classes and some other type of names defined in a namespace scope have
> > external linkage by default. It means that you will violate this
> > rule.
> As this is not a ODR, you can probably work around it by just removing
> all symbols that refer to boost from your library.

Leaving aside whether or not it is an ODR violation, why do you care more
about the ODR than section 3.5? That is, why would it not be okay to work
around an ODR violation using implementation-specific measures, but it
would be okay to do so for section 3.5? I don't see how using "strip" to
remove symbols is relevant to whether the standard considers a name to
have external linkage or not (external linkage being something defined by
the standard).

> strip can be used to
> perform such a task. It seems to accept wildcards, so you may be able
> to remove all symbols in boost namespace with just one invocation. You
> only need to figure out the correct wild card as the C++ symbols will be
> mangled by the compiler in a compiler dependent way.

Boost list run by bdawes at, gregod at, cpdaniel at, john at