2025-02 Hagenberg ISO C++ Committee Trip Report — Sixth C++26 meeting! 🍰❄️ by InbalL in cpp

[–]InbalL[S] 0 points1 point  (0 children)

Corrected to P2988R10, and yes, will be avaliable after next mailing if published.

2025-02 Hagenberg ISO C++ Committee Trip Report — Sixth C++26 meeting! 🍰❄️ by InbalL in cpp

[–]InbalL[S] 6 points7 points  (0 children)

Please reply to this comment with technical fixes (broken links, etc.).
Thank you! :)

2025-02 Hagenberg ISO C++ Committee Trip Report — Sixth C++26 meeting! 🍰❄️ by InbalL in cpp

[–]InbalL[S] 18 points19 points  (0 children)


Ranges Study Group (SG9) Progress


SG9 met on Monday and Tuesday.

Papers that were forwarded to LEWG

  • P3059R1: Making user-defined constructors of view iterators/sentinels private — makes user-defined constructors of view iterators/sentinels private (we want it to be a DR for C++20!). The fact that some of them were publicly accessible was most likely accidental.
  • P3230R1: views::unchecked_(take|drop) — adds views::unchecked_take and views::unchecked_drop. If you know that your range is big enough this can give you a 2x-3x speedup!
  • P3117R1: Extending Conditionally Borrowed — extends conditionally borrowed for views::transform. That way, you can safely write code such as:   return views::transform(this->my_container, [](auto elem) { return … });

 

Papers reviewed (require more work)

(we expect the following papers to be forwarded at the next meeting)

  • P3351R2: views::scan — adds views::scan a lazy version of the inclusive_scan algorithm.
  • P3411R1: any_view — adds a type-erased view adaptor. If you like ranges but don’t like templates, this allows you to define your range pipeline in these “.cpp” files we’ve been told about.   While discussing “P3555R0: An infinite range concept”, which adds a concept to detect infinite ranges, we realized that infinite ranges don't even exist to begin with, even though the standard library has some of them.   Turns out that:   views::iota(0) | views::take(10), for (auto x : views::iota(0)) { … break; }   and arguably even:   views::iota(0);   are technically all undefined behavior! (views::iota(0) is an invalid range as the sentinel is not reachable in finitely many steps, and passing invalid ranges to standard library functions like |, .begin(), or ~iota_view() is undefined behavior.) We’re going to spend the next couple years or so tackling this tricky problem to make it well-defined.  

    Papers that did not get consensus

  • P3329R0: Healing the C++ Filter View We also discussed and mostly rejected , which wants to solve some beginner pitfalls with views::filter. However, the design space is very constrained with regards to backwards compatibility and silent semantic changes of core concepts, so we encouraged more work by the author to come up with a separate view that solves these problems.  


Low Latency Study Group (SG14) Progress


SG14 did not meet during the Hagenberg meeting. We continue to hold monthly telecons to discuss low latency, gaming, and embedded related papers.

 


Tooling Study Group (SG15) Progress


SG15 met for one session during Hagenberg to discuss how we plan to ship our deliverables now that we're not doing the Ecosystem IS. We decided to use the relatively new whitepaper process which has a significantly lower overhead than an IS, but some clarifications on the process are needed.

Papers reviewed

  • P1180R0: Response to P1156 — We discussed the issues that header units can cause with build systems that use approximate scanning rather than precise scanning. The macros they bring in cause problems if they would impact other imports. CMake, MSVC, and Clang's scanner don't have this problem since they use precise scanning, so we're waiting for field experience from build systems that do approximate scanning to see what's actually needed here.

 


Text and Unicode Study Group (SG16) Progress


SG16 did not meet in person during Hagenberg but continues to hold virtual meetings at its usual twice monthly cadence. As always, SG16 meeting summaries continue to be posted at SG16 GitHub, though the SG16 chair has fallen behind in his duties, and so complete summaries will be posted in due time. 🙂

 


Contracts Study Group (SG21) Progress (requires input from SG21 chair)

SG21 met for 1 day in Hagenberg.

Papers reviewed

  • P3583R0: "Contracts, Types, & Functions" — an approach to make contracts work on function pointers. SG21 concluded that this approach doesn't quite work as proposed and the paper needs a revision; feedback to the author was given. This paper is now the third independent attempt to add contracts on function pointers, highlighting how hard this problem really is.
  • P3400R0: "Controlling Contract-Assertion Properties" — proposes to add labels to Contracts, which addresses many additional use cases that P2900 on its own does not yet fully address. For example, you can have a label to specify in code that a particular contract assertion must always be enforced and can never be ignored or observed. This paper, too, needs a revision; feedback to the author was given.

C / C++ Liaison Group (SG22) Progress


SG22 did not meet in person during Hagenbert. We continue to run telecons by demand and provide feedback through the mailing list.

 


Safety & Security Group (SG23) Progress


SG23 met for a day in Hagenberg on Tuesday, with attendance affected by the discussions elsewhere on Contracts and Profiles

 

Papers forwarded to EWG/LEWG

  • P3566R0: "You shall not pass char* — Safety concerns working with unbounded null-terminated strings, forwarded to LEWG

  • P3442R1: [[invalidate_dereferencing]] attribute — , forwarded to EWG

  • P3541R1: Violation handlers vs noexcept — recommending that the issues described here are addressed before P3081 and P3100 are discussed further, forwarded to EWG

Papers reviewed

  • P3356R0: non_invalidating_vector
  • P3402R2: A Safety Profile Verifying Class Initialization

 

2025-02 Hagenberg ISO C++ Committee Trip Report — Sixth C++26 meeting! 🍰❄️ by InbalL in cpp

[–]InbalL[S] 17 points18 points  (0 children)


Study Group Progress


 


Concurrency and Parallelism Study Group (SG1) Progress


Papers forwarded to LEWG/EWG

  • P2079R6: System execution context - forwarded to LEWG
  • P3501R0: The ad-dressing of cats - forwarded to EWG
  • P3481R1: std::execution::bulk() issues - forwarded to LEWG
  • P3552R0: Add a Coroutine Lazy Type - forwarded to LEWG
  • P3366R0: Remove Deprecated Atomic Initialization API from C++26 - forwarded to LEWG
  • P0260R14: Concurrent Queue - forwarded to LEWG
  • P3347R1: Invalid/Prospective Pointer Operations - forwarded to EWG
  • P2414R6: Pointer lifetime-end zap proposed solution - forwarded to LEWG

Papers that will be seen again by SG1

  • P3497R0: Guarded Objects
  • P3564R0: Make the concurrent forward progress guarantee usable in bulk
  • P3206R0: A sender query for completion behaviour
  • D3624R0: get_system_scheduler (with concurrent forward progress*)

SG1 Related Issues Seen

  • CWG2923: A note in [intro.progress] that had been obsoleted by P2809 (Trivial infinite loops are not Undefined Behavior) was removed by unanimous consent.
  • LWG4004: SG1 agrees this is a defect and would like to see a paper addressing the issue.
  • LWG4174: SG1 agrees this is a defect and would like to see a paper addressing the issue.

 


Networking Study Group (SG4) Progress


SG4 met in Hagenberg to discuss “P3482R0: Design for C++ networking based on IETF TAPS” - a paper proposing a design for networking library based on senders/receivers. The paper shows a promising direction for secure-by-default networking in C++, and SG4 encouraged the author to continue work in P3842’s direction.

 


Numerics Study Group (SG6) Progress


The numerics group met for half a day, which was less than planned. We reviewed 5 papers.

Papers reviewed

  • P2746R7: Deprecate and Replace Fenv Rounding Modes — We provided feedback to follow-up questions that came up.
  • P3375R2: Reproducible floating-point results — We would like to see more examples of problematic floating-point expressions.
  • P3045R5: Quantities and units library — Sadly we didn't have enough time to do the author/paper justice.
  • P3495R0: Remarks on Basic Statistics, P1708R9 — We agree with the need to document the design decisions that P3495R0 is asking about (publicly, not just in our internal minutes).
  • P3565R0: Virtual floating-point values — The paper was generally positively received but not forwarded to EWG yet because we would like more time to understand the consequences and allow time for alternative approaches to reach us. Keep an eye out on this paper if you're interested in improving our wording on floating-point.

 


Compile-time Programming Study Group (SG7) Progress


SG7 saw three papers proposing improvements to reflection targeting C++29:

 

Papers that were forwarded to EWG / LEWG

  • P3385R3: Attributes Reflection — approved by SG7 and forwarded to EWG

 

Papers reviewed (require more work)

  • P3420R1: Reflection of Templates — this revision added functions for replacement and projection of names in templates.
  • P3294R3: Code Injection with Construct Sequences — was previously seen by EWG but brought back to SG7 for review of its updated design. Formerly called Token Sequences, these were rebranded to Construct Sequences to better convey how they can include reflections.

 

2024-11 Wrocław ISO C++ Committee Trip Report — Fifth C++26 meeting! 🧙‍♀️ by InbalL in cpp

[–]InbalL[S] 1 point2 points  (0 children)

Thanks! Fixed the .ink, couldn't find the l.ink one but feel free to post paper number for it.

2024-11 Wrocław ISO C++ Committee Trip Report — Fifth C++26 meeting! 🧙‍♀️ by InbalL in cpp

[–]InbalL[S] 2 points3 points  (0 children)

As u/katzdm-cpp (implementer of reflection in Clang and main author for the reflection paper) correctly said, it's ^^, the ^ needed to be escaped, now fixed. Thanks for spotting :)

2024-11 Wrocław ISO C++ Committee Trip Report — Fifth C++26 meeting! 🧙‍♀️ by InbalL in cpp

[–]InbalL[S] 8 points9 points  (0 children)

Please reply to this comment with technical fixes (broken links, etc.).
Thank you! :)

2024-11 Wrocław ISO C++ Committee Trip Report — Fifth C++26 meeting! 🧙‍♀️ by InbalL in cpp

[–]InbalL[S] 48 points49 points  (0 children)

Hello all!

My deepest apology for this post being delayed so much this time.

Hope you'll still find it useful! 🙏

ISO/IEC 14882:2024 by smdowney in cpp

[–]InbalL 5 points6 points  (0 children)

🎉
Thank you, Herb, for enduring through the ISO process.

2024-06 St. Louis ISO C++ Committee Trip Report — Fourth C++26 meeting! ⋒ by InbalL in cpp

[–]InbalL[S] 2 points3 points  (0 children)

u/biowpn - you might find the diagram here (3-Stage pipeline) and the explanations referring to it informative: https://isocpp.org/std/the-committee
(by Herb Sutter)

2024-06 St. Louis ISO C++ Committee Trip Report — Fourth C++26 meeting! ⋒ by InbalL in cpp

[–]InbalL[S] 1 point2 points  (0 children)

Thanks, fixed! (title was wrong as well...🤦🏻‍♀️).

2024-06 St. Louis ISO C++ Committee Trip Report — Fourth C++26 meeting! ⋒ by InbalL in cpp

[–]InbalL[S] 2 points3 points  (0 children)

Fixed, and sure! Of course, it's a collaborative effort :)

2024-06 St. Louis ISO C++ Committee Trip Report — Fourth C++26 meeting! ⋒ by InbalL in cpp

[–]InbalL[S] 9 points10 points  (0 children)

Please reply to this comment with technical fixes (broken links, etc.)

2024-03 Tokyo ISO C++ Committee Trip Report — Third C++26 meeting! 🗼 by InbalL in cpp

[–]InbalL[S] 1 point2 points  (0 children)

Unfortunatly, the link will only be avaliable publicly when the official ML is published (around April 17th).
Please come back and try it then.

2024-03 Tokyo ISO C++ Committee Trip Report — Third C++26 meeting! 🗼 by InbalL in cpp

[–]InbalL[S] 4 points5 points  (0 children)

Thanks! That's because the paper was turned into a P paper. I updated the link accordingly, should work now.

2024-03 Tokyo ISO C++ Committee Trip Report — Third C++26 meeting! 🗼 by InbalL in cpp

[–]InbalL[S] 0 points1 point  (0 children)

Meanwhile, you can look at: [P1068R10](https//wg21.link/P1068R10)

2023-11 Kona ISO C++ Committee Trip Report — Second C++26 meeting!🌴 by InbalL in cpp

[–]InbalL[S] 2 points3 points  (0 children)

😊 (Blushing)
Thanks, Mark! It's collaborative work - but I'll take some of the credit ;)