Boost logo

Boost :

From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2021-02-02 15:12:24


On 02/02/2021 15:01, Peter Dimov via Boost wrote:
> Niall Douglas wrote:
>
>> I seem to be having difficulty communicating this to anyone here, so
>> here's a godbolt:
>>
>> https://godbolt.org/z/jv5Y75
>
> But you've provided a definition for thirdpartylib_nothidden. This is
> not the case under discussion. The case under discussion is making
> BOOST_SYMBOL_IMPORT imply _VISIBLE, which translates to a default
> visibility attribute on the _declaration_ of thirdpartylib_nothidden.

If the Boost library where BOOST_XXX_DECL = BOOST_SYMBOL_VISIBLE is
being applied has public headers which never, ever provide an
implementation for any function, then BOOST_XXX_DECL =
BOOST_SYMBOL_VISIBLE would not cause export of third party symbols in
consuming libraries.

I would be surprised if any such C++ library, let alone Boost library,
exists, however.

I would point out that if Boost.ProgramOptions fixes its exception types
not being BOOST_SYMBOL_VISIBLE, the principle problem the OP reported
goes away without further changes.

Changing the ABI signature of the entire of Boost I think is a radical
step needing public announcement for at least two Boost major releases
before implementation.

Niall


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk