Boost logo

Boost :

From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2021-02-02 12:34:59


On 02/02/2021 11:51, Andrey Semashev via Boost wrote:

> So, the bottom line, BOOST_PROGRAM_OPTIONS_DECL must be defined to:
>
> - BOOST_SYMBOL_EXPORT - on Windows, when the library is being built;
> - BOOST_SYMBOL_IMPORT - on Windows, when the library is being consumed
> by user;
> - BOOST_SYMBOL_VISIBLE - in any other case.

This causes Boost.ProgramOptions symbols to be exported in any shared
object or executable which links in Boost.ProgramOptions i.e. you
reexport the same symbols.

So, as I already said, don't do that. Only symbols whose typeinfos need
to be seen during RTTI lookup should always be BOOST_SYMBOL_VISIBLE.
That is generally types thrown as exceptions, and anything else subject
to dynamic_cast.

Niall


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