Subject: Re: [boost] [config] What to call macros to indicate deprecated/removed components
From: Glen Fernandes (glen.fernandes_at_[hidden])
Date: 2017-04-16 11:53:40
On Sun, Apr 16, 2017 at 6:57 AM, John Maddock via Boost wrote:
> We now have several former C++ features which are removed in C++17:
> And we're getting requests for configuration macros for these, the question
> is what to call them?
> We could stick with the (easy to implement) existing naming and just use:
> or we could use:
> which is a bit more work as all the scripts that rely on the
> BOOST_NO/BOOST_HAS convention need updating.
> Any other suggestions/preferences?
> Thanks, John.
I like BOOST_NO_FEATURE for features just outright removed.
Removal probably doesn't require a C++ standard version in the macro
since its effects are the same even if it happens many times over, for
some reason. (e.g. If std::exchange was removed in C++20, then added
back in C++2y, then removed in C++2z, there would be no difference
between BOOST_CXX20_REMOVED_STD_EXCHANGE and
I just didn't like BOOST_NO_CXX17_FEATURE style if FEATURE does not
even exist in C++17 because it is misleading compared to the other
macros which check for existence of features.