On Fri, May 6, 2022 at 4:36 AM Niall Douglas via Boost
On 06/05/2022 09:10, John Maddock via Boost wrote:
Personally, there's little in C++14 that makes that move attractive for me. C++17 yes (for if constexpr). There may be a few libraries which could use the enhanced constexpr support in C++14, but otherwise I'm not sure how much practical difference this makes. On the other hand, C++14 is the current baseline for current compilers, so I have no objection to making this the current Boost baseline as well!
C++ 14 has a *lot* of bugfixes over C++ 11.
These won't matter to you until they do, and when they do, they are most frustrating.
I note that when GCC and clang changed their default C++ standard they jumped from 03 to 14. They did not choose 11 at any point. I find that revealing.
Looking around at other compilers, the only one which ever stopped at 11 as the default was hipcc.
https://gist.github.com/ax3l/53db9fa8a4f4c21ecc5c4100c0d93c94
17 is also a fine default, which it is for GCC 11 onwards. Our work codebase was 17 right up until this week, when we expect to transition to 20 as the minimum. And I can then rip out lots of preprocessor macros, woohoo!
Niall
It would still be useful to have a plan going forward, where Boost as a whole follows a predictable pattern. It sounds like people would be more amenable to saying Boost will support the current and previous two language levels at a given release. In particular this means those will be the language levels that are tested for viability. I was originally recommending 3, but it's possible there is a consensus around 2. That means today, C++20, 17, 14 would be supported in whatever release adopted this strategy. Do we have an online tool for voting on proposals to assist? - Jim