From: Jonathan Turkanis (technews_at_[hidden])
Date: 2004-09-11 09:20:07
"David Abrahams" <dave_at_[hidden]> wrote in message
> "Pavel Vozenilek" <pavel_vozenilek_at_[hidden]> 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.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk