Boost logo

Boost :

From: Jonathan Turkanis (technews_at_[hidden])
Date: 2004-09-11 09:20:07


"David Abrahams" <dave_at_[hidden]> wrote in message
news:ud60tozt9.fsf_at_boost-consulting.com...
> "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.

Jonathan


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