|
Boost : |
Subject: Re: [boost] [config] Rethinking feature macros?
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2017-11-06 02:42:42
AMDG
On 11/05/2017 07:30 PM, Peter Dimov via Boost wrote:
> Steven Watanabe wrote:
>
>> I think it's probably a bad idea for Boost.Config to try to define the
>> standard feature macros.
>>
>> - #defining third-party macros in library code is a recipe for ODR
>> violations.
>
> There is no difference between defining __cpp_foo and BOOST_NO_CXX17_FOO
> as far as ODR violations are concerned. In both cases, before the
> inclusion of boost/config.hpp the macro isn't set, and after the
> inclusion, it may be.
>
This is only true assuming that
a) The only uses of these macros are inside Boost or
by Boost users who explicitly #include Boost.Config
to get them and,
b) No other (unrelated to Boost) library chooses to
implement the same idea OR such a library is
never used in the same translation unit as Boost.Config
OR the definitions are exactly identical to Boost.Config
(If the implementation of a feature is incomplete or buggy,
different people may make different choices about whether
to #define the feature macro).
In Christ,
Steven Watanabe
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk