Andrzej Krzemienski wrote:
Let me do a small exercise to check if I understood what is being proposed. The following sentences were *not* said by Peter. I am making these claims, based on my understanding, and I would ask you, Peter, to say if they are correct in the context of the proposal.
Suppose that 1.83 is the first release where the proposal is implemented.
1. This means that the author of library Boost.X can declare "support for C++03 is deprecated, and it will be removed in 1.85". In 1.85 the author is allowed to make changes such that when library Boost.X is compiled with - std=C++03 a hard error is issued. This means that if library Boost.Y uses (or depends on) Boost.X and library Boost.Z depends on Boost.Y and The author of Boost.Z claims that they support C++03, this support suddenly breaks in library Boost.Z (because library Boost.X now issues an error on -std=C++03).
If the proposal is adopted, the author of Boost.X can remove the support for C++03 in 1.83, without going through the deprecation procedure.
2. The implication of the above is that only the "leaf libraries" (those that no other Boost library depends on) can safely remove the C++03 support.
No, every library will be free to remove C++03 support starting with 1.83 (under the assumption that we declare 1.82 as the last Boost release supporting C++03.)