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:
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?
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 BOOST_CXX2Z_REMOVED_STD_EXCHANGE.) 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.[1] Glen [1] https://github.com/boostorg/config/pull/131