On 04/16/17 13:57, John Maddock via Boost wrote:
We now have several former C++ features which are removed in C++17:
auto_ptr
random_shuffle
binders
unary/binary_function
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:
BOOST_NO_<FEATURE>
or we could use:
BOOST_<STD>_REMOVED_<FEATURE>
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.