From: pbristow_at_[hidden]
Date: 2019-11-08 10:46:15


> -----Original Message-----
> From: Boost <boost-bounces_at_[hidden]> On Behalf Of Michael Caisse via
> Boost
> Sent: 8 November 2019 07:18
> To: boost_at_[hidden]
> Cc: Michael Caisse <mcaisse-lists_at_[hidden]>
> Subject: Re: [boost] Suggested policy for dropping C++03 support in Boost libraries
>
> On 11/7/19 21:37, Robert Ramey via Boost wrote:
> > On 11/7/19 7:24 PM, James E. King III via Boost wrote:
> >
> >>
> >> This was already debated before. No need to rehash it. Maintainers
> >> are already empowered to drop C++03 support.
> >
> > Right. they've been empowered to do this for 20 years. How does this
> > change anything
>
> It would seem that you are not the audience. Some authors apparently feel
> conflict in dropping C++03 support. A clearly documented policy of how to do this
> provides no harm and may cause authors/maintainers to deprecate old compiler
> support.
>
> >
> >
> >> They can start by updating their
> >> readme and docs and stop running their C++03 CI jobs.
> >
> > Is it being proposed that they should be required to do this?. If not
> > what are library maintainers expected to do differently?
> >
>
> The proposal does not say this. The proposal provides the minimum steps that
> should be taken when a library maintainer is going to deprecate
> C++03 support.
>
> It seems very reasonable to have a written policy. I fully understand that some
> maintainers will feel no additional power from such a declaration; however, it does
> allow a uniform process to be pointed to.

I agree that the existing policy of 20 years has not changed, (but is frequently misunderstood) but agree that a statement of policy could be helpful to users.

The essence of Peter Dimov proposal https://pdimov.github.io/articles/phasing_out_cxx03.html is

Suggested Policy is

"
A library author or maintainer will be allowed to announce that C++03 support in the library is deprecated.

This announcement will take the following forms:

A note in the documentation;

An item in the release notes in the Boost release deprecating C++03 support;

A message issued at compilation time if a library header is included in C++03 mode.

The recommended form of the code issuing the message will be

#include <boost/config.hpp>
#include <boost/config/pragma_message.hpp>

#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || defined(BOOST_NO_CXX11_HDR_MEMORY)

BOOST_PRAGMA_MESSAGE("C++03 support is deprecated in Boost.Library 1.73 and will be removed in Boost.Library 1.76.")

#endif
with the condition of the #if directive adjusted appropriately to reflect the actual library requirements.

At least three Boost releases must ship with a deprecation notice before support is dropped.
"
Previously, I think we had suggested only two releases (my preference).

But that still seems a reasonable policy to me.

Paul

Paul A. Bristow
Prizet Farmhouse
Kendal, Cumbria
LA8 8AB UK