2025-05 Mailing Available
The 2025-05 mailing of new standards papers is now available.
| WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
|---|---|---|---|---|---|---|
| N5010 | WG21 agenda: 16-21 June 2025, Sofia Bulgaria | John Spicer | 2025-05-04 | 2025-05 | All of WG21 | |
| P0085R1 | Oo... adding a coherent character sequence to begin octal-literals | Axel Naumann | 2025-05-19 | 2025-05 | P0085R0 | EWG Evolution,LEWG Library Evolution |
| P0149R2 | Generalised member pointers | Jeff Snyder | 2025-05-19 | 2025-05 | P0149R1 | CWG Core |
| P0149R3 | Generalised member pointers | Jeff Snyder | 2025-05-19 | 2025-05 | P0149R2 | CWG Core |
| P1144R13 | std::is_trivially_relocatable | Arthur O'Dwyer | 2025-05-14 | 2025-05 | P1144R12 | EWG Evolution |
| P1306R4 | Expansion statements | Dan Katz | 2025-05-17 | 2025-05 | P1306R3 | CWG Core |
| P2079R8 | Parallel Scheduler | Lucian Radu Teodorescu | 2025-05-18 | 2025-05 | P2079R7 | LWG Library |
| P2287R5 | Designated-initializers for base classes | Barry Revzin | 2025-05-17 | 2025-05 | P2287R4 | EWG Evolution |
| P2414R7 | Pointer lifetime-end zap proposed solutions | Paul E. McKenney | 2025-05-14 | 2025-05 | P2414R6 | SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library |
| P2434R4 | Nondeterministic pointer provenance | S. Davis Herring | 2025-05-09 | 2025-05 | P2434R3 | SG1 Concurrency and Parallelism,SG22 Compatibility,EWG Evolution,CWG Core,LWG Library |
| P2509R1 | A proposal for a type trait to detect value-preserving conversions | Giuseppe D'Angelo | 2025-05-19 | 2025-05 | P2509R0 | SG6 Numerics,LEWG Library Evolution |
| P2664R10 | Proposal to extend std::simd with permutation API | Daniel Towner | 2025-05-19 | 2025-05 | P2664R9 | LWG Library |
| P2719R5 | Type-aware allocation and deallocation functions | Louis Dionne | 2025-05-12 | 2025-05 | P2719R4 | CWG Core |
| P2902R2 | constexpr 'Parallel' Algorithms | Oliver Rosten | 2025-05-12 | 2025-05 | P2902R1 | LEWG Library Evolution,LWG Library |
| P2927R3 | Observing exceptions stored in exception_ptr | Gor Nishanov | 2025-05-18 | 2025-05 | P2927R2 | LWG Library |
| P2956R1 | Add saturating library support to std::simd | Daniel Towner | 2025-05-19 | 2025-05 | P2956R0 | LWG Library |
| P2970R0 | Partial application of concepts in template arguments | Corentin Jabot | 2025-05-19 | 2025-05 | EWG Evolution | |
| P2996R12 | Reflection for C++26 | Barry Revzin | 2025-05-17 | 2025-05 | P2996R11 | EWG Evolution |
| P3008R5 | Atomic floating-point min/max | Gonzalo Brito Gadeschi | 2025-04-29 | 2025-05 | P3008R4 | LWG Library |
| P3008R5 | Atomic floating-point min/max | Gonzalo Brito Gadeschi | 2025-05-18 | 2025-05 | P3008R4 | LWG Library |
| P3037R6 | constexpr std::shared_ptr and friends | Paul Keir | 2025-05-03 | 2025-05 | P3037R5 | LWG Library |
| P3086R4 | Proxy: A Pointer-Semantics-Based Polymorphism Library | Mingxin Wang | 2025-05-19 | 2025-05 | P3086R3 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution |
| P3096R9 | Function Parameter Reflection in Reflection for C++26 | Adam Lach | 2025-05-15 | 2025-05 | P3096R8 | CWG Core,LWG Library |
| P3100R2 | Implicit contract assertions | Timur Doumler | 2025-05-19 | 2025-05 | P3100R1 | EWG Evolution |
| P3111R6 | Atomic Reduction Operations | Gonzalo Brito Gadeschi | 2025-05-18 | 2025-05 | P3111R5 | CWG Core,LWG Library |
| P3125R4 | constexpr pointer tagging | Hana Dusíková | 2025-05-19 | 2025-05 | P3125R3 | LEWG Library Evolution |
| P3149R10 | async_scope -- Creating scopes for non-sequential concurrency | Ian Petersen | 2025-05-19 | 2025-05 | P3149R9 | LWG Library |
| P3164R4 | Early Diagnostics for Sender Expressions | Eric Niebler | 2025-04-27 | 2025-05 | P3164R3 | LWG Library |
| P3179R8 | C++ parallel range algorithms | Ruslan Arutyunyan | 2025-05-18 | 2025-05 | P3179R7 | LWG Library |
| P3284R4 | `write_env` and `unstoppable` Sender Adaptors | Eric Niebler | 2025-05-16 | 2025-05 | P3284R3 | LWG Library |
| P3293R2 | Splicing a base class subobject | Barry Revzin | 2025-05-11 | 2025-05 | P3293R1 | EWG Evolution |
| P3310R6 | Solving issues introduced by relaxed template template parameter matching | Matheus Izvekov | 2025-05-18 | 2025-05 | P3310R5 | EWG Evolution,CWG Core |
| P3347R2 | Invalid/Prospective Pointer Operations | Paul E. McKenney | 2025-05-14 | 2025-05 | P3347R1 | EWG Evolution |
| P3375R3 | Reproducible floating-point results | Guy Davidson | 2025-05-18 | 2025-05 | P3375R2 | SG6 Numerics,SG14 Low Latency,LEWG Library Evolution |
| P3385R5 | Attributes reflection | Aurelien Cassagnes | 2025-05-19 | 2025-05 | P3385R4 | EWG Evolution,LEWG Library Evolution |
| P3394R3 | Annotations for Reflection | Daveed Vandevoorde | 2025-05-17 | 2025-05 | P3394R2 | CWG Core,LWG Library |
| P3395R4 | Fix encoding issues and add a formatter for std::error_code | Victor Zverovich | 2025-04-27 | 2025-05 | P3395R3 | LEWG Library Evolution |
| P3402R3 | A Safety Profile Verifying Initialization | Marc-André Laverdière | 2025-05-16 | 2025-05 | P3402R2 | SG23 Safety and Security,EWG Evolution |
| P3411R2 | `any_view` | Hui Xie | 2025-05-17 | 2025-05 | P3411R1 | SG9 Ranges,LEWG Library Evolution |
| P3412R2 | String interpolation | Bengt Gustafsson | 2025-05-18 | 2025-05 | P3412R1 | EWG Evolution |
| P3439R2 | Chained comparisons: Safe, correct, efficient | Herb Sutter | 2025-05-10 | 2025-05 | P3439R1 | EWG Evolution |
| P3442R2 | [[invalidate_dereferencing]] attribute | Patrice Roy | 2025-05-19 | 2025-05 | P3442R1 | EWG Evolution |
| P3480R5 | std::simd is a range | Matthias Kretz | 2025-05-15 | 2025-05 | P3480R4 | LWG Library |
| P3516R2 | Uninitialized algorithms for relocation | Louis Dionne | 2025-05-16 | 2025-05 | P3516R1 | LWG Library |
| P3552R2 | Add a Coroutine Task Type | Dietmar Kühl | 2025-05-18 | 2025-05 | P3552R1 | LWG Library |
| P3556R1 | Input files are source files | Alisdair Meredith | 2025-05-19 | 2025-05 | P3556R0 | SG16 Unicode,CWG Core |
| P3557R2 | High-Quality Sender Diagnostics with Constexpr Exceptions | Eric Niebler | 2025-05-16 | 2025-05 | P3557R1 | LWG Library |
| P3560R1 | Error Handling in Reflection | Barry Revzin | 2025-05-19 | 2025-05 | P3560R0 | EWG Evolution,LEWG Library Evolution |
| P3565R1 | Virtual floating-point values | S. Davis Herring | 2025-05-19 | 2025-05 | P3565R0 | SG6 Numerics |
| P3566R1 | You shall not pass `char*` - Safety concerns working with unbounded null-terminated strings | Marco Foco | 2025-05-19 | 2025-05 | P3566R0 | SG23 Safety and Security,LEWG Library Evolution,LWG Library,ARG ABI Review Group |
| P3570R1 | optional variants in sender/receiver | Fabio Fracassi | 2025-05-19 | 2025-05 | P3570R0 | LEWG Library Evolution |
| P3588R1 | Allow static data members in local and unnamed classes | Brian Bi | 2025-05-17 | 2025-05 | P3588R0 | EWG Evolution |
| P3589R2 | C++ Profiles: The Framework | Gabriel Dos Reis | 2025-05-19 | 2025-05 | P3589R1 | EWG Evolution |
| P3617R0 | std::meta::reflect_constant_{array,string} | Barry Revzin | 2025-05-16 | 2025-05 | LEWG Library Evolution | |
| P3631R0 | Cleaning up the trivial relocation APIs in C++26 | Louis Dionne | 2025-05-18 | 2025-05 | LEWG Library Evolution,LWG Library | |
| P3649R0 | A principled approach to safety profiles | Jonathan Müller | 2025-05-19 | 2025-05 | SG23 Safety and Security | |
| P3655R1 | zstring_view | Peter Bindels | 2025-05-19 | 2025-05 | P3655R0 | LEWG Library Evolution |
| P3658R1 | Adjust identifier following new Unicode recommendations | Robin Leroy | 2025-05-15 | 2025-05 | P3658R0 | EWG Evolution |
| P3663R1 | Future-proof `submdspan-mapping` | Mark Hoemmen | 2025-05-16 | 2025-05 | P3663R0 | LWG Library |
| P3668R1 | Defaulting Postfix Increment and Decrement Operations | Matthew Taylor | 2025-05-16 | 2025-05 | P3668R0 | EWGI SG17: EWG Incubator |
| P3669R1 | Non-Blocking Support for `std::execution` | Detlef Vollmann | 2025-05-17 | 2025-05 | P3669R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
| P3670R1 | Pack Indexing for Template Names | Corentin Jabot | 2025-05-03 | 2025-05 | P3670R0 | EWG Evolution |
| P3676R0 | Enhanced inline Keyword with Configurable Inlining Levels | Stephen Berry | 2025-04-17 | 2025-05 | SG14 Low Latency,EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library | |
| P3677R0 | Preserving LC_CTYPE at program start for UTF-8 locales | Corentin Jabot | 2025-05-03 | 2025-05 | SG16 Unicode,SG22 Compatibility | |
| P3678R0 | Arbitrary attributes in define_aggregate | Aurelien Cassagnes | 2025-05-14 | 2025-05 | SG7 Reflection | |
| P3679R0 | SFINAEable constexpr exceptions | Hana Dusíková | 2025-05-16 | 2025-05 | EWG Evolution | |
| P3681R0 | char_traits: Stop the bleeding | Corentin Jabot | 2025-05-19 | 2025-05 | SG16 Unicode | |
| P3682R0 | Remove std::execution::split | Robert Leahy | 2025-05-06 | 2025-05 | LEWG Library Evolution | |
| P3685R0 | Rename async_scope_token | Robert Leahy | 2025-05-07 | 2025-05 | LEWG Library Evolution | |
| P3686R0 | Allow named modules to export macros | Chuanqi Xu | 2025-05-07 | 2025-05 | EWG Evolution | |
| P3687R0 | Final Adjustments to C++26 Reflection | Dan Katz | 2025-05-15 | 2025-05 | EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library | |
| P3688R0 | ASCII character utilities | Jan Schultke | 2025-05-19 | 2025-05 | SG16 Unicode,LEWG Library Evolution | |
| P3689R0 | Convenience functions for Random number generation | Thomas Mejstrik | 2025-05-11 | 2025-05 | LEWGI SG18: LEWG Incubator | |
| P3690R0 | Consistency fix: Make simd reductions SIMD-generic | Olaf Krzikalla | 2025-05-13 | 2025-05 | LEWG Library Evolution | |
| P3691R0 | Reconsider naming of the namespace for "std::simd" | Matthias Kretz | 2025-05-19 | 2025-05 | LEWG Library Evolution | |
| P3692R0 | How to Avoid OOTA Without Really Trying | Paul E. McKenney | 2025-05-13 | 2025-05 | SG1 Concurrency and Parallelism | |
| P3693R0 | SG14: Low Latency/Games/Embedded/Financial Trading virtual Meeting Minutes 2025/04/09-2025/05/07 | Michael Wong | 2025-05-15 | 2025-05 | SG14 Low Latency | |
| P3694R0 | SG19: Machine Learning virtual Meeting Minutes to 2025/03/13-2025/05/08 | Michael Wong | 2025-05-15 | 2025-05 | SG19 Machine Learning | |
| P3695R0 | Deprecate implicit conversions between Unicode character types | Jan Schultke | 2025-05-17 | 2025-05 | SG16 Unicode,EWG Evolution | |
| P3696R0 | Discovering Header Units via Module Maps | Michael Spencer | 2025-05-19 | 2025-05 | SG15 Tooling | |
| P3697R0 | Minor additions to C++26 standard library hardening | Konstantin Varlamov | 2025-05-15 | 2025-05 | LEWG Library Evolution,LWG Library | |
| P3698R0 | Cross-capacity comparisons for inplace_vector | Charles Hussong | 2025-05-19 | 2025-05 | LEWG Library Evolution | |
| P3699R0 | Rename `conqueue_errc` | Detlef Vollmann | 2025-05-17 | 2025-05 | LEWG Library Evolution | |
| P3700R0 | Making Safe C++ happen | Peter Bindels | 2025-05-19 | 2025-05 | SG21 Contracts,SG23 Safety and Security,EWG Evolution | |
| P3701R0 | Concepts for integer types, not integral types | Jan Schultke | 2025-05-19 | 2025-05 | LEWG Library Evolution | |
| P3702R0 | Stricter requirements for document submissions (SD-7) | Jan Schultke | 2025-05-19 | 2025-05 | All of WG21 | |
| P3703R0 | Constness and Locking | Yoaodan Zhang | 2025-05-18 | 2025-05 | SG1 Concurrency and Parallelism | |
| P3704R0 | What are profiles? | Bjarne Stroustrup | 2025-05-19 | 2025-05 | SG20 Education,SG23 Safety and Security,EWG Evolution,LEWG Library Evolution | |
| P3705R0 | A Sentinel for Null-Terminated Strings | Eddie Nolan | 2025-05-19 | 2025-05 | SG9 Ranges,LEWG Library Evolution | |
| P3706R0 | Rename join and nest in async_scope proposal | Ruslan Arutyunyan | 2025-05-19 | 2025-05 | LEWG Library Evolution | |
| P3707R0 | A std::is_always_exhaustive trait | Patrice Roy | 2025-05-19 | 2025-05 | SG14 Low Latency,LEWG Library Evolution | |
| P3709R0 | Reconsider parallel ranges::rotate_copy and ranges::reverse_copy | Ruslan Arutyunyan | 2025-05-18 | 2025-05 | LEWG Library Evolution | |
| P3710R0 | zstring_view: a string_view with guaranteed null termination | Alexey Shevlyakov, Marco Foco | 2025-05-19 | 2025-05 | SG23 Safety and Security,LEWG Library Evolution | |
| P3711R0 | Safer StringViewLike Functions for Replacing char* strings | Marco Foco | 2025-05-19 | 2025-05 | SG23 Safety and Security,LEWG Library Evolution | |
| P3712R0 | 2025-05 Library Evolution Polls | Inbal Levi | 2025-05-19 | 2025-05 | All of WG21 | |
| P3714R0 | Virtual values have Virtual Value | Joshua Cranmer | 2025-05-19 | 2025-05 | SG6 Numerics | |
| P3715R0 | Tightening floating-point semantics for C++ | Joshua Cranmer | 2025-05-19 | 2025-05 | SG6 Numerics,SG22 Compatibility | |
| P3716R0 | Subsetting | Peter Bindels | 2025-05-19 | 2025-05 | SG23 Safety and Security,EWG Evolution | |
| P3717R0 | Update Annex E onto Unicode 16 | Steve Downey | 2025-05-19 | 2025-05 | SG16 Unicode,EWG Evolution,CWG Core |

In the December issue of Overload [
Friday, May 30th, 2025, 10:00 - 18:00 Berlin time (online)

Integer division is one of the most expensive operations in C++, but when the divisor is known at compile time, the compiler can optimize it significantly. This post explores different approaches—using templates, lambda expressions, and template metaprogramming—to speed up division while maintaining clean and efficient code.
GCC 15 is