Andrey Semashev wrote:
I don't see much of a problem with the negative form. The idea is that the macros indicate compiler defects wrt. the latest standard (plus the positive form macros for non-standard features), which I think makes sense. This way the number of defined macros tend to be always low on good compilers, which is probably better than having them continuously grow over time.
This was the case ten years ago but not now. You can no longer derive any quality metric by what a compiler supports. gcc 6 is not a non-good compiler, it just defaults to C++14. VS 2017 15.3 is not a non-good compiler, it's just not 15.5 yet. Given the new pace of the standard, there will never be any longer a point at which a good compiler will be macro-free, as there will always be things left to implement because they were added after the compiler shipped.