Subject: Re: [boost] version conflicts: is there a solution?
From: Edward Diener (eldiener_at_[hidden])
Date: 2009-06-25 10:06:15
Frank Mori Hess wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> On Wednesday 24 June 2009, Edward Diener wrote:
>>> Having the definitions separated into different translation units doesn't
>>> seem to be enough to prevent ODR violations according to the standard.
>>> It gives a list of requirements for multiple definitions in different
>>> translation units in section 3.2.5.
>> I do not believe the C++ definition of a "translation unit" comes into
>> play when dealing with a library, but rather with header files included
>> within a source file. If the implementation is internal, as the OP
>> suggested, then I would assume that no header files for the
>> implementation are distributed and therefore no ODR violation for that
>> particular situation should occur.
>> Of course there may be conflicts when linking if internal details of a
>> library are exported but that is not something about which the C++
>> standard says anything AFAIK.
> Can you point to anything in the standard that supports your position?
Where in the standard do you see any mention of an ODR violation
occuring where there are no header files being distributed for inclusion
by a source file which would create such a violation ?
As I understand the OP, the Boost header files for the internal usage of
Boost in the distributed library is not distributed or needed by the end
user when using the library. How can something which does not exist for
the end-user of a library produce an ODR violation in a translation unit
with other header files ?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk