WG21 PAPERS

Mailings Beta

Volunteer-driven · Not affiliated with WG21 or ISO

Filter and export papers from the C++ Committee’s monthly mailings by time frame and audience using the options below, or refine your export further with the Select button. Links point directly to the official WG21 papers on open-std.org.

Audience
Wording
Evolution
Study Groups
Mailings
1 · Year 1 · Month

Select the arrow to the right of the year to filter for specific months.

2026 May · 1 of 6

Pick months in 2026

Add Year +

Select Years To Display

Current Years Selected

2026
Filters Author: Jan Schultke Clear all
11 out of 11 papers selected for export
SelectPaper Title Authors Audience Doc Date
P3104R5 Bit permutations J. Schultke
Mailing Date 2026-05 Pre-Brno
Author(s) Jan Schultke
Target Audience LWG
Revisions R6
Tracking issue View on GitHub
Abstract The C++ bit manipulation library in `<bit>` is an invaluable abstraction from hardware operations. Functions like `countl_zero` help the programmer avoid use of intrinsic functions or inline assembly.
P3568R2 break label; and continue label; J. Schultke
Mailing Date 2026-05 Pre-Brno
Author(s) Jan Schultke
Target Audience EWGSG22
Tracking issue View on GitHub
Abstract While C++ already has a broad selection of control flow constructs, one construct commonly found in other languages is notably absent: the ability to apply `break` or `continue` to a loop or `switch` when this isn’t the innermost enclosing statement. This feature is popular, simple, and quite useful:
P3642R5 Carry-less product: std::clmul J. Schultke
Mailing Date 2026-05 Pre-Brno
Author(s) Jan Schultke
Target Audience LEWG
Revisions R6R4
Tracking issue View on GitHub
Abstract [Carry-less multiplication](https://en.wikipedia.org/wiki/Carry-less_product) is a simple numerical operation on unsigned integers. It can be a seen as a regular multiplication where `xor` is being used as a reduction instead of `+`.
P3666R4 Bit-precise integers J. Schultke
Mailing Date 2026-05 Pre-Brno
Author(s) Jan Schultke
Target Audience LEWGCWG
Revisions R3
Tracking issue View on GitHub
Abstract In distant history, there have been various attempts at standardizing multi-precision integers in C++, such as [[N1692]](https://wg21%2elink/n1692) "A Proposal to add the Infinite Precision Integer to the C++ Standard Library", [[N1744]](https://wg21%2elink/n1744) "Big Integer Library Proposal for C++0x", and [[N4038]](https://wg21%2elink/n4038) "Proposal for Unbounded-Precision Integer Types", al
P3724R4 Integer division J. Schultke
Mailing Date 2026-05 Pre-Brno
Author(s) Jan Schultke
Target Audience LEWG
Revisions R3
Tracking issue View on GitHub
Abstract C++ currently only offers truncating integer division in the form of the `/` operator. However, other rounding modes have various use cases too, and implementing these as the user can be surprisingly hard, especially when integer overflow needs to be avoided, and negative inputs are accepted.
P3737R4 std::array is a wrapper for an array! J. Schultke
Mailing Date 2026-05 Pre-Brno
Author(s) Jan Schultke
Target Audience LEWG
Revisions R3
Tracking issue View on GitHub
Abstract The `std::array` class template has established itself as a de-facto replacement for "builtin arrays" or "C-style arrays" in many code bases. This also means that it is frequently taught to novice programmers, with an explanation along the lines of:
P3876R2 Extending <charconv> support to more character types J. Schultke, P. Bindels
Mailing Date 2026-05 Pre-Brno
Target Audience SG16
Revisions R1
Tracking issue View on GitHub
Abstract Support for `char8_t` and other Unicode character types in `std::to_chars` and `std::from_chars` is clearly useful. File formats such as JSON require the use of Unicode character encodings, so an application that deals with JSON may want to use `char8_t` in its APIs and internally. However, when attempting to use `char8_t` for this purpose, one quickly runs into problems:
P3891R1 Improve readability of the C++ grammar by adding a syntax for groups and repetitions J. Schultke
Mailing Date 2026-05 Pre-Brno
Author(s) Jan Schultke
Target Audience CWGLWG
Tracking issue View on GitHub
Abstract The current C++ syntax notation as specified in [[syntax]](https://eel.is/c++draft/syntax) and summarized in [[gram]](https://eel.is/c++draft/gram) has only a handful of features:
P3935R1 Rebasing <cmath> on C23 J. Schultke
Mailing Date 2026-05 Pre-Brno
Author(s) Jan Schultke
Target Audience SG22
Revisions R2
Tracking issue View on GitHub
Abstract [[P3348R4]](https://wg21%2elink/p3348r4) rebased the C++26 standard on C23; it previously referred to C17. However, this process was deliberately left incomplete: some of the new C23 `<math.h>` features are only used by decimal floating-point types, or they require core language changes, etc.
P3969R1 Fixing std::bit_cast of types with padding bits J. Schultke
Mailing Date 2026-05 Pre-Brno
Author(s) Jan Schultke
Target Audience EWGLEWG
Revisions R2R0
Tracking issue View on GitHub
Abstract > The following use of `std::bit_cast` has undefined behavior at compile time: > > ```cpp > constexpr auto x = std::bit_cast<__int128>(0.0L); // GCC accepts (x = 0), Clang rejects > ``` > > That is because an 80-bit x87 `long double` has 6 bytes of padding, and it is undefined behavior to map those padding bits onto non-padding bits in the destination type via `std::bit_cast`. [[bit.cast]](https:/
P4231R0 Unified floating point rounding proposal H. Boehm, G. Davidson, J. Schultke
Mailing Date 2026-05 Pre-Brno
Target Audience LEWGSG6
Tracking issue View on GitHub
Abstract We propose the addition of the following struct. Actual wording is still left as future work (some of which can be taken from p3864). This is basically identical to P2746, except that we constrain operations to be IEEE conformant whenever is_iec_559 is `true`.
Showing 11 of 11 papers · source: open-std.org