Boost logo

Boost :

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:
>
> 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.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk