Legacy Safety: The Wrocław C++ Meeting | cor3ntin

submited by
Style Pass
2024-12-02 18:00:06

Someone was giving away stickers reading “Somebody Should Do Something” at the WG21 C++ Standardization meeting held in Wrocław last week, and it makes for a pretty good tagline for that meeting.

We are one meeting away from calling C++26 feature complete. The draft will be sent to National Bodies this summer. After that, we will have a couple of meetings to fix bugs and then wait for ISO to publish the official standard, which might take a year or two.

Hard-pressed by self-imposed deadlines, I would not say we are rushing design reviews, but boy, does it seem like it sometimes!

These deadlines are somewhat ridiculous, as very few people need to care about ISO publications, and to some extent, the version of C++ you use is irrelevant; features are implemented out-of-order and often deployed in older language modes when possible. Features test macros are good; use them. On the other hand, we still don’t have a better way to stabilize features, so publishing the draft of the international standard is a somewhat okay cut-off point (even though WG21 will apply breaking changes well into 2025 if it feels like it). Either way, I don’t think we are justified in designing features based on deadlines (basic_fixed_string, define_aggregate come to mind). All major features, especially reflection, have rough edges, and their design is still in flux. However, this end-of-the-cycle rush is on par for the course, and most features should stabilize over the next year.

I know it is sometimes difficult to form a fair view of the outcomes when reading about WG21 proceedings, so before going further, we should acknowledge that there is a lot to love about C++26. Reflection and Contracts are poised to land in C++26, and each proposal represents years of hard work. We also just approved std::simd, a portable way to write SIMD code. I remember the author telling me about this work at my first meeting back in 2018. I think sender/receivers, approved earlier this year, is the right framework to allow C++ to thrive in the current reality of highly heterogeneous and parallel hardware.

Leave a Comment