Subject: Re: [boost] [config] What to call macros to indicate deprecated/removed components
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2017-04-16 11:28:45
On 04/16/17 13:57, 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?
Previously, we followed the "no macro = no defect" approach, which, if
we consider the presence of the deprecated comonents a defect, would
result in BOOST_CXX17_NO_REMOVED_RANDOM_SHUFFLE meaning random_shuffle
is _present_ when the macro is _defined_. I think such behavior would be
rather contrived, so IMHO it's better to define
BOOST_CXX17_REMOVED_RANDOM_SHUFFLE when random_shuffle is missing. OTOH,
that would also mean that the code will not be compatible with a
"perfect compiler implementing the latest standard" with no macros
defined. Not sure how useful this is.