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/