
"David Abrahams" <dave@boost-consulting.com> wrote in message news:ud60tozt9.fsf@boost-consulting.com...
"Pavel Vozenilek" <pavel_vozenilek@hotmail.com> writes:
Right now libraries define their own macros, e.g Iostreams has BOOST_IO_DECL and Regex uses BOOST_REGEX_DECL.
I suggest common macro, BOOST_DECL to be used Boost-wide.
Its value may be by default empty or deduced from BOOST_ALL_DYN_LINK as it is done in Regex.
It may be important to link a static version of one library with a dynamic version of another. That wouldn't be possible with a single macro.
What would be nice is a macro BOOST_DECLSPEC(xxx) which expands to 1. __declspec(dllexport) if a. BOOST_HAS_DECLSPEC are BOOST_xxx_SOURCE defined AND b. one of BOOST_ALL_DYN_LINK and BOOST_xxx_DYN_LINK is defined 2. __declspec(dllimport) if a. BOOST_HAS_DECLSPEC is defined b. BOOST_xxx_SOURCE is not defined c. one of BOOST_ALL_DYN_LINK and BOOST_xxx_DYN_LINK is defined 3. nothing, otherwise. Paul Mensonides once sent me some code which does a much simple version of the above, but it included four headers from Boost.PP and was 29 lines long. If such a macro can be defined in a self-contained manner and reasonably succintly I think it would be a big improvement over the current situation. Jonathan