Subject: Re: [boost] version conflicts: is there a solution?
From: Frank Mori Hess (frank.hess_at_[hidden])
Date: 2009-06-25 08:56:34
-----BEGIN PGP SIGNED MESSAGE-----
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? It may
be safe to have an internal usage of boost in your compiled library on a
particular C++ implementation, but that doesn't say anything about whether or
not an ODR violation is happening. ODR violations are something defined by
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
-----END PGP SIGNATURE-----
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk