Boost logo

Boost :

Subject: Re: [boost] [config] Rethinking feature macros?
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2017-11-06 02:24:34


On 06/11/2017 01:15, Peter Dimov via Boost wrote:
> Now that there are standard feature-testing macros
> (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0096r5.html)
> that are being implemented by at least g++ and clang++,

VS2017 also supports them. It actually has a really high quality
implementation without the spelling mistakes certain other compilers have :)

> would it perhaps
> make sense for us to reevaluate our decision to provide negative macros
> in Boost.Config and start defining the standard feature macros instead
> on the compilers that don't support them?

The answer is no. The SD6 feature test macros in the latest proposal
paper are a tiny subset of those offered by Boost.Config. With latest
SD6, one ends up testing for some feature which you know is usually
associated with the one that you actually want due to the paucity of
feature macros.

I personally think the stripping of all the macros which used to be in
the proposal down to the current minimum viable set is a mistake. But
the argument is that these macros are for a future C++ standard, not the
current standard. You may have heard that the WG21 convenor got annoyed
at how much dependence on those macros was already appearing in the C++
ecosystem when the proposed set wasn't close to entering the standard
yet. This led to the stripping to discourage usage until they enter a
future standard. And thus, very recent compilers actually have removed
feature test macros, thus breaking my code which then thinks such and
such a feature is not implemented. Which is quite annoying.

Boost.Config, in comparison, will not break your code on new compilers,
usually.

Niall

-- 
ned Productions Limited Consulting
http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/

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