---
title: WG21 2026-03 Croydon Hybrid Meeting Minutes
document: n5040
date: 2026-04-17
audience: All of WG21
reply-to:
  - "Braden Ganetsky"
paper-type: informational
---

Nina Ranns presents. Every participant is responsible for understanding and abiding by the following documents. It is assumed that every participant has read them before attending this meeting.

* [The ISO Code of Conduct](https://www.iso.org/files/live/sites/isoorg/files/store/en/PUB100397.pdf)

* [The IEC Code of Conduct](https://www.iec.ch/basecamp/iec-code-conduct-technical-work)

* [The WG21 Practices and Procedures, and Code of Conduct](https://isocpp.org/std/standing-documents/sd-4-wg21-practices-and-procedures)

Documents are on the wiki. Please get familiar with them. They also include a description of the process we follow. You are expected to abide by the rules of the code of conduct of your respective NB. Meetings are not public, we want everyone to be able to speak freely. Please refrain from live tweeting, blogging, taking photos of other people’s screens or recording the meetings. You’re allowed to take screenshots of presentations for your personal use. If you want to

quote anybody outside the meeting, please make sure that you have their consent. You can freely quote aggregate polls and decisions after the meeting. We have a new per-user wiki that contains meeting specific information. Please do not edit the wiki unless you have been explicitly instructed to do so. If you are attending for the first time, please see the page for new committee members. Contact Braden Ganetsky if you need access to the wiki, and for all other WG21 resources. We also have a github tracker. The repos for papers and NB ballot issues has been made private for the week. Please do not update github issues unless you have been explicitly instructed to do so by the relevant chair. Contact Braden Ganetsky if you need access to the github. For technical discussions, please do not use github. Use the reflectors, emails, Mattermost, or any other form of communication instead. We have online access to this meeting, as it is a hybrid meeting. If you are just talking in the room, people will not hear you. Every room will have a microphone somewhere. Please speak into the microphone so people participating over Zoom can hear. Please introduce yourself when speaking. The attendance sheet is live. You can find it on wiki and mattermost. It is populated with a snapshot of the global directory as well as the guests. Please mark your attendance, including whether you are in-person or virtual. If you have any issues, let Nevin Liber know. For plenary polls, you have to be in the ISO global directory to vote. One person, one vote. In working groups and study groups everyone can vote. Please refer to the best practices in the WG21 document - e.g. do not vote unless you are familiar with the issue. In the subgroup sessions, guests are also allowed to vote. Nina Ranns explains voting procedure for remote and in person attendance.

### 1.3. Introductions

Introduction of the WG21 officers. Introduction of admin support roles. Introduction of the subgroup chairs. First time attendees introduce themselves.

### 1.4. Agenda review and approval

Nina Ranns presents the agenda and timings for the week. The primary goals of this meeting will be:

* Address national body comments on C++26 features

Additional, lower-priority goals include:

* Subgroup work that target versions after C++26

### 1.5. Editor's reports, approval/adoption of working drafts

**Document** **Editor’s Report** **Prospective WD**

C++26 Working Draft [N5033](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/n5033.html) [N5032](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/n5032.pdf)

Motion to approve the documents above. No objections. Approved.

### 1.6. Approval of the minutes of the previous meetings

**Meeting** **Minutes**

| WG21 Kona | [N5031](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/n5031.pdf) |
| --- | --- |
| WG21 pre-Croydon administrative telecon | [N5038](https://isocpp.org/files/papers/N5038.pdf) |

Motion to approve the documents above. No objections. Approved.

## 2. Liaison reports, and WG21 study group reports

No discussion.

## 3. WG progress reports (Core, Evolution, Library,

No discussion.

## 4. New business requiring action by the committee

* C++26 photo - Wednesday, at start of lunch break
* Zoom participants, switch on cameras at closing plenary

## 5. Organize working groups and study groups,

Jens Maurer presents local amenities. Jens Maurer presents room assignments. Room assignments are on the wiki page. Any questions or issues with remote attending setup, please find Jens Maurer.

## 6. Subgroup sessions

The subgroup chairs must arrange for any proposals to be written up in the form of a motion, and made available by 8:00 PM Friday on the straw polls page. Groups are encouraged to make polls available as soon as possible during the week so people can have time to review them. Please keep informed so you can raise any issues or concerns early. If you have any questions or issues, please bring them up to attention as soon as possible. On reflector, mattermost, or one of the subgroup chairs.

## 7. Review of the meeting

Reminder: Make sure you have marked the attendance sheet, if you have not already done so. Subgroup status and progress reports. Presentation and discussion of proposals to be considered for consensus adoption by full WG21.

### ABI Group (Vandevoorde/Merrill)

Nothing to report.

### Admin (Liber)

There are 204 attendees (as of this writing), representing 24 NBs, 126 of which are face to face. We will likely be adding two more flags to the paper system:

* One to mark papers already seen by WG21, such as presentations

* One to mark papers that are informational only and not intended to be presented
within WG21.

The next two mailings:

* 2026-04-20 for the post-Croydon mailing
* 2026-05-11 likely for the pre-Brno mailing

### 

* Handful of NB comments processed
* Little over a half-dozen papers reviewed
* Couple of issues addressed
* Not a single A or SA vote the whole week — SG1 is perfectly aligned
* Ruslan is chair of SG1 from the next meeting.

### SG4: Networking (Snyder/Ažman)

Nothing to report.

### SG6: Numerics (Kretz/Lippincott)

SG6 met for half of the week with a full room and several virtual attendees. This is great and might allow us to take on more bold projects. There were talks of our own Annex F (to nail down ISO 60559 behavior). We forwarded most papers that we saw this week, notably: - user-defined types in std::simd - two papers on bit functions - Rebasing `<cmath>` on C23 - several floating-point clarifications We asked the author of "Canonical Parallel Reduction" to come back. There is interest in a third (and maybe even fourth) parallel reduction algorithm.

### SG7: Compile-time programming (Dusíková/Snyder)

Nothing to report.

### SG9: Ranges (Müller/Laine)

Nothing to report.

### SG10: Feature test (Revzin/Wakely)

Nothing to report.

### SG14: Low latency (Wong)

SG14 did not meet this week. SG14 continues to meet every month, on low latency and embedded. Work continues on low latency papers regarding the discussions this week on networking and executors.

### SG15: Tooling (Spencer/Boeckel)

Nothing to report.

### SG16: Unicode (Honermann/Downey)

SG16 did not meet this week. Tom Honermann is stepping down as chair, with Steve Downey to step up as the new chair. In honor of SG16, Tom has adopted the Unicode replacement character in the Unicode Adopt-a-Character program.

### SG17: EWG incubator (Keane/Touton)

Nothing to report.

### SG18: LEWG incubator (Baker/Liber)

SG18 met Wednesday and Thursday afternoons. We completed the review of P3045R7 Quantities and units library that started in Tokyo. This paper is now in LEWG's pipeline. Vinnie Falco presented his rubric for evaluating papers. Members of the Direction Group and Convenor team were present for the discussion. P3086R5 Proxy: A Pointer-Semantics-Based Polymorphism Library was presented with changes that have been previously requested. The author has received additional feedback related to concerns about the paper. We did not get to P3832 Timed lock algorithms for multiple lockables and P3833 std::multi_lock. We are planning Zoom calls before the Brno meeting.

### SG19: Machine learning (Wong/Ratzloff)

SG19 did not meet this week. SG19 continues to meet every month. We’ve been talking about statistics and graph algorithms, in order to work better with machine learning.

### SG20: Education (van Winkel/Sattler)

SG20 met in Croydon on Tuesday afternoon. We started with a quick status update on our progress on developing teaching topics, that is, there are currently 16 new topics in the works and close to being integrated into our teaching guidelines. Next, we had an open round to discuss C++ teaching experiences that primarily focused on the impact that AI is currently having on how we teach. We analyzed the C++ newcomer experience, taking in feedback from a recent talk at 'using std::cpp'. Based on the overall feedback that we gathered, we then drafted various options that could help to improve the newcomer experience (e.g., provide practical example setups for newcomers). The plan is to further identify current gaps in the newcomer experience in the coming online/f2f meetings and then propose concrete solutions to close them. Afterwards, we scoped out new teaching topics that will become relevant with C++26, further filling our topic backlog. Lastly, a big thanks to Stéphane who scribed for SG20 the whole afternoon.

### SG22: C/C++ liaison (Ranns/Meneide/Herring)

Nothing to report.

### SG23: Safety and Security (Orr/Butler)

SG23 met on Wednesday morning and looked at two papers: Bjarne Stroustrup presented P3984R0 "A type-safety profile" We strongly supported the direction of this paper and will be making the Profile Framework our focus for the C++29 timeframe. SG23 volunteered to EWG to drive the development of the Profiles Framework. The EWG chairs were happy to accept this offer. Paul E. McKenney presented P3970R0 "Profiles and Safety: a call to action" No polls were taken; the chairs felt any polls would be repeating the polls already taken for Bjarne's paper.

### Evolution (Keane/Dusíková/Snyder)

This week EWG met all 5 days and saw a total of 70 items in our schedule. We saw:

* 9 NB papers (6 confirmed or accepted; 3 didn't get consensus)

* 9 NB related papers (4 were only part of discussion, 4 were forwarded, 1 failed to get
consensus)

* 13 issues or papers related to an issue (5 forwarded, 2 forwarded as DR, 5
discussed, 1 paper author didn't show up)

* 1 paper for C++26 which wasn't part of NB comment, because someone forgot to
submit the comment (it was rejected)

* 27 papers for C++29 (8 forwarded to CWG, 4 forwarded to LEWG, 9 got consensus
for more work and/or encouragement, 2 got consensus AGAINST more work, 4 didn't
get consensus, also 1 paper got back from CWG under its chair decision)

* 2 papers related profiles (which we delegated to SG23 to own)

* We had 7 papers we only discussed as they were not proposing, they were only
informing.

* And had Friday afternoon discussion if C++ should be a memory safe language and
encouraged more work towards that direction.

Notably:

* we confirmed Contracts to be kept in C++26

Instruct CWG to Remove the Contracts Facility (as added by P2900R14 and subsequent proposals) from C++26, as a response to RO 2-056 and reject NL 6.11. SF F N A SA 11 3 7 24 35 Result: not consensus

As mentioned before, White papers about profiles are now owned by SG23 which is now delegated for their development. We drained the full schedule we planned and did a few more papers than we expected, some of them originally tagged for EWGI. All this and we also managed to have the memory safety discussion on Friday afternoon.

### Library Evolution (Levi/Fracassi/Weis)

LEWG have met during the full week in Croydon, and **discussed 87** items, among these:

* C++26 - 59 items
* C++29 - 16 items
* 35 NB comments (and related 24 papers) - discussed and resolved

**#** **Title** **Status**

1 US 70-126 17.12.7 [compare.type] Allow incomplete types in type_order

Accepted (P4140R0) (C++26)

2 GB11-302 29.11.1 [stdckdint.h.syn] Add C++ feature test macro for the header

Accepted (C++26)

3 GB 07-223 22.12 [stdbit.h.syn] Add a C++-specific feature test macro for stdbit.h

Accepted (C++26)

4 CA-318 33 [exec] Reduce operation-state sizes for child operations P3425 (P3425 Superseded by P3986)

Accepted (P3986R0) (C++26)

5 P3986 R0 A Wording Strategy for Inlinable Receivers

Approved (C++26)

6 P3425 R1 Reducing operation-state sizes for subobject child operations

Approved (P3986R0) (C++26)

7 CA-338 33.9.12.10 [exec.let] Do not extend lifetimes of input operation states for let_value, let_error, let_stopped P3373

Accepted (P3373R2) (C++26)

8 P3373 R2 Of Operation States and Their Lifetimes

Approved (CA-338) (C++26)

9 FR-025-246 25.7.18.2 [range.concat.view] Add a reserve_hint function to concat_view

Accepted (C++26)

10 US 153-247 25.7.27.1, 25.7.28.1p02.1 Remove the N>0 restriction from adjacent_transform_view

Rejected (NAD)

11 DE-251 25.7.8.2 [range.filter.view] Apply P3725 Filter View Extensions for Input Ranges (DR for 23)

Accepted (C++26)

12 Filter View Extensions for Input Ranges Approved (DE-251) (C++26)

13 GB 09-257 26.7 [alg.modifying.operations] Adopt P3059 Making user-defined constructors of view iterators/sentinels private

Accepted (C++26)

14 P3059 R1 Making user-defined constructors of view iterators/sentinels private

Approved (GB-009) (C++26)

15 LWG4492 std::generate and std::ranges::generate wording is unclear for parallel algorithms

Approved (C++26)

16 FR-027-267 26.11.7 [uninitialized.fill] Adopt P3787R0 - Adjoints to "Enabling list-initialization for algorithms": uninitialized_fill

Accepted (P3787R0) (C++26)

17 P3787 R0 Adjoints to "Enabling list-initialization for algorithms": uninitialized_fill

Approved (FR-027) (C++26)

18 P3953 R1 Rename std::runtime_format Approved (C++26)

19 RU-222 22.10.17.06 [func.wrap.ref] function_ref's constructor should be constexpr to avoid dynamic initialization

Rejected

20 RU-221 22.10.17.05 [func.wrap.copy.ctor] copyable_function's constructors should be constexpr to avoid dynamic initialization

Rejected

21 RU-220 22.10.17.01 [func.wrap.general] Adopt LWG4264 Skipping indirection is not allowed for function_ref (P3961R0)

Accepted (LWG4264+P3961R2+P3929R0 discussed) (C++26)

22 P3961 R0 Less double indirection in function_ref (RU-220)

Approved (RU-220) (C++26)

23 LWG4264 Skipping indirection is not allowed for function_ref

Approved (RU-220) (C++26)

24 P3929 R0 Fix safety hazard in std::function_ref

Discussed (RU-220) (C++26)

25 US 142-236 23.3.9.3p4 [hive.capacity] reserve(n) gap between postconditions and throws

Accepted (C++26)

26 P3978 R2 constant_wrapper should unwrap on call and subscript

Approved (C++26)

27 P3948 R0 constant_wrapper is the only tool needed for passing constant expressions

Approved (C++26)

28 P4012 R0 value-preserving consteval broadcast to simd::vec (new paper resulted from DE-286)

Accepted (C++26)

29 PL-007 23.7.3.7 [mdspan.sub] [mdspan.sub] Define the extent member of the strided_slice

Accepted (P3982R1) (C++26)

30 GB12-308 32.5.6 [atomics.wait] atomic wait/notify should not be required for freestanding

Rejected

31 FR-026-265 26.10.17 [numeric.sat] Confusing names add_sat, sub_sat, mul_sat

Accepted (P4052R0) (C++26)

32 P4052 R0 Renaming saturation arithmetic functions

Approved (FR-026) (C++26)

33 LWG4544 Parallel overload of ranges::set_difference should return in_in_out_result

Approved (C++26)

34 LWG4548 Parallel ranges::set_intersection should not do unnecessary work

Approved (C++26)

35 US 238-368 33.13.5 [exec.task.scheduler] Allow customizations when using task_scheduler LWG4336 (P3927R0)

Accepted (P3927R1) (C++26)

36 P3927R0 task_scheduler Support for Parallel Bulk Execution

Approved (IS-238) (C++26)

37 P3941 R3 Scheduler Affinity Approved (US-232) (C++26)

38 US 232-366 33.13.3 [exec.affine.on] Specify customizations for affine_on when sender does not change scheduler LWG4329

Accepted (P3941R3) (C++26)

39 US 233-365 33.13.3 [exec.affine.on] Clarify affine_on vs. continues_on LWG4330

Accepted (P3941R3) (C++26)

40 US 234-364 33.13.3 [exec.affine.on] Remove scheduler parameter from affine_on LWG4331

Accepted (P3941R3) (C++26)

41 US 235-363 33.13.3 [exec.affine.on] affine_on should not forward the stop token to the scheduling operation LWG4332

Accepted (P3941R3) (C++26)

42 US 236-362 33.13.3 [exec.affine.on] Specify default implementation of affine_on LWG4344

Accepted (P3941R3) (C++26)

43 US 246-373 33.13.6.2 [task.class] Support symmetric transfer LWG4348

Rejected

44 P4007 R0 Senders and Coroutines (discussed during US-246)

45 P2583 R0 Symmetric Transfer and Sender Composition

(discussed during US-246) (C++26)

46 US 139-232 23.3.9.1p05.4 [hive.overview] Adjust all constructors and methods on hive to throw in case specified block limits violate the conditions

Rejected

47 US 205-320 33.4 [execution.syn] Rename system_context_replaceability namespace P4031

Accepted (P4031R0) (C++26)

48 P4031 R0 Rename system_context_replaceability namespace

Approved (US-205) (C++26)

49 CH 33 [exec] Signal-safe asynchronous execution

Rejected

50 P3947 R0 identifier_of Should Return std::string

Rejected

51 FR-034-336 33.9.12 [exec.adapt] Rename then, let_value, let_error, let_stopped

Rejected

52 US 49-090 13.2 [temp.param] Add "is_structural_type" query facility to the library P3856

Accepted (P3856R7) (C++26)

53 P3856 R7 New reflection metafunction - is_structural_type (US NB comment 49)

Approved (US-049) (C++26)

54 US 75-138 20.3.2.2 [util.smartptr.shared] Does it make sense for owner_before and owner_less to be constexpr?

Accepted (C++26)

55 P3940 R0 Rename concept tags for C++26: sender_t to sender_tag

Accepted (C++26)

56 GB14-306 32.5.12 [stdatomic.h.syn] Remove stdatomic.h

Rejected

57 P4022 R0 Remove try_append_range from inplace_vector for now

Approved (PL-006) (C++26)

58 PL-006 23.3.16.1 [inplace.vector.overview] Change the return type of inplace_vector try_push_back and try_emplace_back functions to optional, change the return type of try_append_range to return conditional_t<ranges::borrowed_range<SR>, SR, ranges::dangling> (P3981)

Accepted (P4022R0) (C++26)

59 Breaking change in std::span new initializer_list constructor

Approved (C++26)

60 P4144 R0 Breaking change in std::spanâ€™s new initializer_list constructor ([https://isocpp.org/files/papers/P4144R0.html](https://isocpp.org/files/papers/P4144R0.html))

Approved (LWG4520) (C++26)

61 US 203-327 33.4 [exec] Rename bulk execution algorithms

Rejected

62 RU-272 29.5.3.1 [rand.req.genl] Prevent instantiation of uniform_int_distribution with std::uint8_t LWG4109 P4037

Accepted (LWG4109+P4037R0) (C++26)

63 P4037 R0 Supporting signed char and unsigned char in random number generation ([https://isocpp.org/files/papers/P4037R0.html](https://isocpp.org/files/papers/P4037R0.html))

Approved (with changes, RU-272) (C++26)

64 (Partially revert the change in P3795R2 (the shape of data_member_spec)) ([https://wg21.link/P3795R1](https://wg21.link/P3795R1))

Approved (partially reverted) (C++26)

65 P2929 R3 Proposal to add chunked_invoke to std::simd ([https://isocpp.org/files/papers/P2929R3.html](https://isocpp.org/files/papers/P2929R3.html))

Discussed (C++29)

66 LWG4555 Remove is_consteval_only (C++26 issue)

Approved (C++26)

67 P3655 R3 cstring_view Discussed (C++29)

68 D4035 R0 The Need for Escape Hatches ([https://isocpp.org/files/papers/P4035R0.pdf](https://isocpp.org/files/papers/P4035R0.pdf))

Discussed (P3655, C++29)

69 P2414 R10 Pointer lifetime-end zap proposed solutions

Forwarded (C++29)

70 P3790 R1 Pointer lifetime-end zap proposed solutions: Bag-of-bits pointer class

Forwarded (C++29)

71 P3427 R2 Hazard Pointer Synchronous Reclamation

Discussed (C++29)

72 P3052 R1 view_interface::at() Forwarded (C++29)

73 P3428 R2 Hazard Pointer Batches Forwarded (with update) (C++29)

74 LWG4361. awaitable-receiver::set_value should use Mandates instead of constraints

Approved (C++26)

75 LWG4354 Reconsider `weakly_parallel` as the default `forward_progress_guarantee`

Approved (C++26)

76 P3411 R5 `any_view` Discussed (C++29)

77 P1708 R10 Basic Statistics Discussed (C++29)

78 FR-017-155 21.04.01 Introduce a core term for C variadic functions and rename meta::has_ellipsis_parameter CWG3112

Accepted (C++26)

79 P3472 R1 Make fiber_context::can_resume() const

Forwarded (C++29)

80 P3045 R7 Quantities and units library Discussed (C++29)

81 P3242 R1 Copy and fill for mdspan Forwarded with changes (C++29)

82 LWG4497 std::nullopt_t should be comparable ([https://cplusplus.github.io/LWG/issue4497](https://cplusplus.github.io/LWG/issue4497))

Approved (C++26)

83 P3154 R1 Deprecating signed character types in iostreams

Approved (C++29)

84 LWG4476 run_loop should not have a set_error completion

Approved (C++26)

85 P4151 R0 Rename affine_on Approved (C++26)

86 P3666 R3 Bit-precise integers (P3869 R1 Slides for P3666R1 Bit-precise integers)

Discussed (C++29)

87 P3625 R0 either neither Forwarded (C++29)

**Minutes updated in:** [https://wiki.isocpp.org/2026-03_Croydon:LibraryEvolutionWorkingGroup](https://wiki.isocpp.org/2026-03_Croydon:LibraryEvolutionWorkingGroup) (with summary & status updated on the related Github issues) **Thanks to all our minute-takers, co-chairs and assistants. Also thank you to all the** **authors (of NB comments, issues, papers).**

### Core (Maurer/Merrill/Yaghmour)

* Thanks to scribes Jason, Jan, Josua.
* 46 ready issues
* 2 revs for P3865
* CWG3158 separate poll as P3598.
* 412 NB comments total (actually correct number: 411)

### CWG polls

**1. Correct the categorization of core issue 3081 to not be a Defect Report and of core** **issues 3082 and 3110 to be Defect Reports. (The resolutions of all three core issues** **were adopted at the November, 2025 WG21 meeting.)** No discussion. No objection to unanimous consent. Approved. **2. Accept as Defect Reports and apply the proposed resolutions of all issues except** **issues 3088, 3119, 3122, 3123, 3124, 3131, 3135, 3140, 3141, 3143, 3145, 3149, 3162,** **and 3172 in P4160R0 (Core Language Working Group "ready" Issues for the March,** **2026 meeting) to the C++ Working Paper.** No discussion. No objection to unanimous consent. Approved. **3. Apply the proposed resolutions of issues 3088, 3119, 3122, 3123, 3124, 3131, 3135,** **3140, 3143, 3145, 3149, 3162, and 3172 in P4160R0 (Core Language Working Group** **"ready" Issues for the March, 2026 meeting) to the C++ Working Paper.** No discussion. No objection to unanimous consent.

Approved. **4. Accept as a Defect Report and apply the changes in P3924R1 (Fix inappropriate** **font choices for "declaration") to the C++ Working Paper. This addresses ballot** **comment US 11-400.** No discussion No objection to unanimous consent Approved. **5. Accept as a Defect Report and apply the changes in P4136R2 (#line is not in line** **with existing implementation) to the C++ Working Paper. This addresses ballot** **comment FR-009-108.** No discussion. No objection to unanimous consent. Approved. **6. Accept as a Defect Report and apply the changes in P4004R1 (Reconsider CWG** **1395 "Partial ordering of variadic templates reconsidered") to the C++ Working Paper.** No discussion. No objection to unanimous consent. Approved. **7. Accept as a Defect Report and apply the changes in P3865R3 (Class template** **argument deduction (CTAD) for type template template parameters) to the C++** **Working Paper.** No discussion. No objection to unanimous consent. Approved. **8. Apply the changes in P3598R0 (CWG 3158 — const-ification of Splice Expressions)** **to the C++ Working Paper.** No discussion. Objection in the room. In favour: 60 in room + 19 online = 79 Opposed: 4 in room + 7 online = 11 Abstain: 13 in room + 9 online = 22 Approved. **9. Apply the changes in P3726R2 (Adjustments to Union Lifetime Rules) to the C++** **Working Paper. This addresses ballot comment DE 087.** Discussion on adding the note about comment DE 087 to the poll. No objection to unanimous consent.

Approved. **10. Accept as a Defect Report and apply the changes in P4143R0 (Constant evaluation** **when?) to the C++ Working Paper. This partially addresses ballot comment US 33-065.** No discussion. No objection to unanimous consent. Approved. **11. Accept as a Defect Report and apply the changes in P4149R1 (Define "immediate** **context") to the C++ Working Paper. This addresses ballot comment US 54-100 and** **core issues 1844 and 2296.** No discussion. Objection in the room. In favour: 57 in room + 21 online = 78 Opposed: 1 in room + 0 online = 1 Abstain: 19 in room + 17 online = 36 Approved. **12. Accept as a Defect Report and apply the changes in P3769R1 (Clarification of** **placement new deallocation) to the C++ Working Paper.** No discussion. No objection to unanimous consent. Approved. **13. Apply the proposed resolution of issue 3141 in P4160R0 (Core Language Working** **Group "ready" Issues for the March, 2026 meeting) to the C++ Working Paper.** No discussion. Objection online. In favour: 53 in room + 20 online = 73 Opposed: 0 in room + 1 online = 1 Abstain: 19 in room + 13 online = 32 Approved.

### Library (Wakely/Garland/Kühl/St. Amour/Trott)

LWG had a long week handling C++26 issues and papers. We completed all NB comment work at about 16:30 on Friday and our last priority one senders-receivers issue at 17:00.

Thanks to our scribes Fraser, Neelofer, and of course Dietmar. We have a total of 38 polls with the usual two polls for resolved issues 44 ready-issues from pre-meeting and 37 immediate from this week.

We'll be back to telecons in a few weeks to start working on C++29 papers that have been forwarded to us.

### LWG polls

**1. Apply the changes in P4145R0 (C++ Standard Library Ready Issues to be moved in** **Croydon, Mar. 2026) to the C++ working paper.** No discussion. No objection to unanimous consent. Approved. **2. Apply the changes in P4146R0 (C++ Standard Library Immediate Issues to be** **moved in Croydon, Mar. 2026) to the C++ working paper.** No discussion. No objection to unanimous consent. Approved. **3. Apply the changes in P3690R1 (Consistency fix: Make simd reductions** **SIMD-generic) to the C++ working paper. This addresses ballot comment AT8-279.** No discussion. No objection to unanimous consent. Approved. **4. Apply the changes in P3844R4 (Reword [simd.math] for consteval conversions) to** **the C++ working paper. This addresses ballot comment DE-286.** No discussion. No objection to unanimous consent. Approved. **5. Apply the changes in P3932R0 (Fix LWG4470: Fix integer-from in [simd]) to the C++** **working paper.** No discussion. No objection to unanimous consent. Approved. **6. Apply the changes in P4012R1 (Value-preserving consteval broadcast to simd::vec)** **to the C++ working paper. This addresses ballot comment DE-286.** No discussion. No objection to unanimous consent. Approved.

**7. Apply the changes in P3886R0 (Wording for AT1-057) to the C++ working paper.** **This addresses ballot comment AT 1-057.** No discussion. No objection to unanimous consent. Approved. **8. Apply the changes in P3936R1 (Safer atomic_ref::address (FR-030-310)) to the C++** **working paper and update the value of the __cpp_lib_atomic_ref macro. This** **addresses ballot comment FR-030-310.** No discussion. No objection to unanimous consent. Approved. **9. Apply the changes in P4140R0 (Proposed resolution for US70-126: allow incomplete** **types in type_order) to the C++ working paper. This addresses ballot comment US** **70-126.** No discussion. No objection to unanimous consent. Approved. **10. Apply the changes in P3373R4 (Of Operation States and Their Lifetimes) to the** **C++ working paper. CA-338.** No discussion. No objection to unanimous consent. Approved. **11. Apply the changes in P3986R1 (A Wording Strategy for Inlinable Receivers) to the** **C++ working paper. This addresses ballot comment CA-318.** No discussion. No objection to unanimous consent. Approved. **12. Accept as a Defect Report and apply the changes in P3059R2 (Making** **user-defined constructors of view iterators/sentinels private) to the C++ working** **paper. This addresses ballot comment GB 09-257.** No discussion. No objection to unanimous consent. Approved.

**13. Accept as a Defect Report and apply the changes in P3725R3 (Filter View** **Extensions for Safer Use, Rev 3) to the C++ working paper. This addresses ballot** **comments AT9-249, RU-250, DE-251.** No discussion. No objection to unanimous consent. Approved. **14. Apply the changes in P3828R1 (Rename the to_input view to as_input) to the C++** **working paper. This addresses ballot comment DE-248.** No discussion. Objection in the room. In favour: 51 in room + 20 online = 71 Opposed: 2 in room + 2 online = 4 Abstain: 19 in room + 13 online = 32 Approved. **15. Apply the changes in P3795R2 (Miscellaneous Reflection Cleanup) to the C++** **working paper. This addresses ballot comments US 42-078 and US 85-150 and US** **122-184 and US 128-192 and US 95-202 and US 131-195.** No discussion. No objection to unanimous consent. Approved. **16. Apply the changes in P3948R1 (constant_wrapper is the only tool needed for** **passing constant expressions via function arguments) to the C++ working paper. This** **addresses ballot comments FR-019-210 and FR-021-218.** No discussion. No objection to unanimous consent. Approved. **17. Apply the changes in P3978R3 (constant_wrapper should unwrap on call and** **subscript) to the C++ working paper.** No discussion. No objection to unanimous consent. Approved. **18. Apply the changes in P3961R1 (Less double indirection in function_ref) to the C++** **working paper. This addresses ballot comment RU-220.** No discussion. No objection to unanimous consent. Approved.

**19. Apply the changes in P3981R2 (Better return types in std::inplace_vector and** **std::exception_ptr_cast) to the C++ working paper. This addresses ballot comments** **PL-006 and US 68-122 and US 150-228 and GB 08-225.** Discussion in the room, asking for a summary of this poll. Response: The type uses optional-reference for member function return types. These are new facilities. Earlier, optional-reference was not available when inplace_vector was accepted into the draft. Later, optional-reference was determined to be better suited for this use case. No objection to unanimous consent. Approved. **20. Apply the changes in P4022R0 (Remove try_append_range from inplace_vector for** **now) to the C++ working paper. This addresses ballot comment PL-006.** No discussion. No objection to unanimous consent. Approved. **21. Apply the changes in P4037R1 (Supporting signed char and unsigned char in** **random number generation) to the C++ working paper. This addresses ballot** **comment RU-272.** No discussion. No objection to unanimous consent. Approved. **22. Apply the changes in P3450R1 (Extend std::is_within_lifetime) to the C++ working** **paper. This addresses ballot comment US 82-145.** No discussion. No objection to unanimous consent. Approved. **23. Apply the changes in P3982R2 (Split strided_slice into extent_slice and** **range_slice for C++26) to the C++ working paper. This addresses ballot comment** **PL-007.** No discussion. No objection to unanimous consent. Approved. **24. Apply the changes in P4144R1 (Remove span’s initializer_list constructor for** **C++26) to the C++ working paper.** Discussion in the room, informational. There is no NB comment attached, as the problem was raised after the ballot.

No objection to unanimous consent. Approved. **25. Apply the changes in P3804R2 (Iterating on parallel_scheduler) to the C++ working** **paper. This addresses ballot comment RO 4-395.** No discussion. No objection to unanimous consent. Approved. **26. Apply the changes in P3787R2 (Adjoints to "Enabling list-initialization for** **algorithms": uninitialized_fill) to the C++ working paper. This addresses ballot** **comment FR-027-267.** No discussion. No objection to unanimous consent. Approved. **27. Apply the changes in P3842R2 (A conservative fix for constexpr** **uncaught_exceptions() and current_exception()) to the C++ working paper. This** **addresses ballot comments PL-012 and GB 03-119 and DE-120 and US 67-118 and** **FI-121.** No discussion. No objection to unanimous consent. Approved. **28. Apply the changes in P3826R5 (Fix Sender Algorithm Customization) to the C++** **working paper. This addresses ballot comments US 207-328 and US 202-326 and** **FR-031-219 and FI-331 and CA-358.** No discussion. No objection to unanimous consent. Approved. **29. Apply the changes in P3980R1 (Task’s Allocator Use) to the C++ working paper.** **This addresses ballot comments US 254-385 and US 253-386 and US 255-384 and US** **261-391.** No discussion. No objection to unanimous consent. Approved. **30. Apply the changes in P4156R0 (Rename meta::has_ellipsis_parameter to** **meta::is_vararg_function) to the C++ working paper. This addresses ballot comment** **FR-017-155.** Discussion:

* Person 1: The decision to forward this change was made yesterday, and there have
been further discussions on these reflections since. Although they are not huge
concerns, there are certain concerns about this change.

* Person 2: It was a late change, to make the wording more in-line with what we
usually do. The original name was slightly misleading. Now we have core wording on
what we want to say. We have a policy decision on those traits that we name them
after the core wording, and we did just that.

* Person 1: It seems like we have half of the core wording here. It may not be entirely
correct to say that we have the core wording we reflect in the metafunction.

* Person 3: The problem is that the predicate is about reflections on functions and
function types. This is a good name for reflections of functions but not of function
types.

* Person 1: This was not discussed in the room

* Person 4: The core feature was changed, with a request to change the name
accordingly, with no suggestion for a concrete name. If people had interesting
names, that would have been good, but this is what we ended up with. It’s true it was
late. Using the term “ellipsis” is not relevant.

Objection in the room. In favour: 52 in room + 12 online = 64 Opposed: 5 in room + 4 online = 9 Abstain: 17 in room + 15 online = 32 Approved. **31. Apply the changes in P3953R3 (Rename std::runtime_format) to the C++ working** **paper.** No discussion. No objection to unanimous consent. Approved. **32. Apply the changes in P4052R0 (Renaming saturation arithmetic functions) to the** **C++ working paper. This addresses ballot comment FR-026-265.** No discussion. No objection to unanimous consent. Approved. **33. Apply the changes in P3941R4 (Scheduler Affinity) to the C++ working paper. This** **addresses ballot comments US 232-366 and US 233-365 and US 234-364 and US** **235-363 and US 236-362.** No discussion. No objection to unanimous consent. Approved. **34. Apply the changes in P3856R8 (New reflection metafunction - is_structural_type)** **to the C++ working paper. This addresses ballot comment US 49-090.**

No discussion. No objection to unanimous consent. Approved. **35. Apply the changes in P3927R2 (task_scheduler support for parallel bulk** **execution) to the C++ working paper. This addresses ballot comment US 238-368.** No discussion. No objection to unanimous consent. Approved. **36. Apply the changes in P4151R1 (Rename affine_on) to the C++ working paper.** No discussion. No objection to unanimous consent. Approved. **37. Apply the changes in P4159R0 (Make sender_to and receiver_of exposition-only)** **to the C++ working paper.** No discussion. No objection to unanimous consent. Approved. **38. Apply the changes in P4154R0 (Renaming various execution things) to the C++** **working paper. This addresses ballot comments US 205-320 and RO 4-395.** No discussion. No objection to unanimous consent. Approved.

### WG21 polls

**1. Adopt P1000R7 "Proposed C++ IS schedule".** Discussion:

* Person 1: What exactly is this paper about?

* Person 2: This is a paper on the plan for the next 3 years, including meeting
locations.

* Person 3: This is less about meetings. This is basically saying that we intend to do
another 3 year cycle with the schedule we just did. The same schedule as C++26,
with 3 years added to each day. This is about the 3 year schedule, with ballot
resolutions, and all that

* Person 4: The number in the header says R6 instead of the correct R7.

* Person 5: Simply put, this document tells us where our deadlines are.

* Person 1: Then are we officially on the path to C++29?

* Person 5: Yes, we are on the path to C++29.

No objection to unanimous consent. Approved. **2. Direct the Convener to transmit paper N5036 “ISO/IEC JTC1/SC22/WG21 White** **Paper, Extensions to C++ for Transactional Memory Version 2” for publication as an** **SC 22 white paper.** Discussion, informational. We have already voted this paper through to SC22 previously. This particular poll is to eliminate any ambiguity to SC22 that we are voting this as a Recommendation to SC22. Objection in the room. In favour: 58 in room + 18 online = 76 Opposed: 2 in room + 4 online = 6 Abstain: 16 in room + 7 online = 23 Approved. **3. Appoint a review committee composed of Daniel Krügler, Jonathan Wakely,** **Neelofer Banglawala, and Shafik Yaghmour to approve the correctness of the C++** **working paper as modified by the polls approved at this meeting, and direct the** **Convener to transmit the approved updated working paper for DIS ballot.** Discussion:

* Person 1: I think the draft has great things I would like to see deployed as soon as
possible. At the same time, it has a major feature that will do real harm. I would
support everything except contracts. I am going to oppose the draft.

* Person 2 (procedural): Reading the poll carefully, I am not sure if it’s worded such
that it constrains the discretion of the editor to create editorial changes. It says that
we have a working paper, and we have polls that we approved during this session,
and it does not seem to describe that the editors will make any changes at all other
than the editorial changes.

* Person 3: The poll has always been this way. The Convenor copied it word-for-word.
Editorial changes are always in scope.

* Person 4: I am of the same opinion as Person 1. I like all the stuff in the draft,
however I think contracts should be further refined before we’re sure we can extend
the current design, then we can all move forward with C++26.

Objection in the room. In favour: 84 in room + 30 online = 114 Opposed: 7 in room + 5 online = 12 Abstain: 1 in room + 2 online = 3 Approved.

### Direction Group (Vandevoorde)

The Direction Group was tasked with suggesting priorities for the evolution of C++. We try to meet every two weeks to discuss where C++ standardization is headed. We also try to meet during meeting weeks to get a sense of the “hot topics” and this week was no exception. There are six of us, which gives us *some* coverage of the various rooms, though it’s not perfect of course. Previously, paper P2000 was the main way to distribute our suggestions. It’s a somewhat-long paper and until last month we hadn’t updated it in a while. We also realize that we should communicate more frequently regarding some specific topics of interest to this committee. We intend to keep updating P2000 for those directions that extend beyond the next standard; so at this time, for things that apply beyond C++29. Suggested priorities for the next standard, however, were now separated into P5000, the first revision of which dropped last month. We have received some feedback on that, and are planning an R1 revision of it fairly soon. [We’d like that revised version to be put up for an endorsement vote at a future plenary meeting.] We’ve also published more topical papers: One suggesting to prioritize working on profiles, one discussing some issues surrounding deep learning, and one suggesting ways to improve collaboration when dealing with larger features. On that note, we thought this week’s discussions about std::execution and networking were a great example of collegial WG21 discussions — we love to see it!

## 8. Closing activities

### 8.1. Issues delayed until today

Inbal Levi presenting “historical moments”, as a light-hearted slide show of highlights of the week.

### 8.2. Mailings

Note: These are the closest regular mailings and not special pre/post meeting mailings. 2026-04-20: Post-Croydon 2026-05-11 (most likely): Pre-Brno

### 8.3. Plans for the future

The editorial review will look over the draft. It will be sent to ISO. ISO is a federation of national bodies, and while we expect them to respect the consensus of the room, they are sovereign national bodies. We are looking for sponsors for future meetings. We are always looking for more volunteers to chair and especially to scribe.

### 8.4. Next and following meetings

Thank you to the sponsors of this meeting and the people who made it run smoothly. The upcoming meetings are:

* [2026-06-08 to 13: Brno, Czechia](https://isocpp.org/files/papers/N5011.html); Mendel University in Brno
* [2026-11-16 to 21: Búzios, Rio De Janeiro, Brazil](https://isocpp.org/files/papers/N5021.html); C++ Alliance
* 2027-winter: (tentative) Istanbul, Turkey
* 2027-summer: (tentative) Sofia, Bulgaria
* 2027-autumn: (tentative) Budapest, Hungary
* 2028-winter: Kona, HI, USA
* 2028-summer: (tentative) Madrid
* 2028-autumn: (tentative) Crete

## 9. Adjournment

Meeting adjourned at 11:20 UTC+0.

## 10. Attendance

### Name

### de Wever, Mark

### Kawulak, Robert

### Nash, Phil

### Tanwar Preeti

### Mara Bos
