From: Peter Dimov (pdimov_at_[hidden])
Date: 2021-02-02 17:15:35


Andrey Semashev wrote:

> Am I correct that BOOST_PROGRAM_OPTIONS_DECL is defined to
> BOOST_SYMBOL_IMPORT,

Yes:
https://github.com/boostorg/program_options/blob/0414abe3f4cf3bb617b80f2e3fb655b0fd8c1ddb/include/boost/program_options/config.hpp#L42

> which expands to nothing, and it breaks when Boost.ProgramOptions library
> throws an exception marked with it?

Yes:
https://github.com/boostorg/program_options/blob/0414abe3f4cf3bb617b80f2e3fb655b0fd8c1ddb/include/boost/program_options/errors.hpp#L47

I haven't verified this failure yet, but Alexander reports that this is what
happens.

(In this specific case, the exceptions are entirely header-only, so they
should have been just marked as VISIBLE. It's not clear what happens when
they have compiled parts, e.g. what().)