$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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