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 Feb · 1 of 6

Pick months in 2026

Add Year +

Select Years To Display

Current Years Selected

2026
Filters Author: Daniel Towner LEWG Clear all
7 out of 7 papers selected for export
SelectPaper Title Authors Audience Doc Date
P2929R2 simd_invoke D. Towner, R. Arutyunyan
Intent Proposal
Mailing Date 2026-02 Pre-Croydon
Target Audience LEWG
Revisions R4R3
Tracking issue View on GitHub
Abstract ISO/IEC 19570:2018 introduced data-parallel types to the C++ Extensions for Parallelism TS [P1928R15]. That paper, and several ancillary papers, do an excellent job of setting out the main features of an extension to C++ which allows generic data parallel programming on arbitrary targets. However, it is inevitable that the programmer will want to make some use of target-specific intrinsics in orde
P2964R2 Allowing user-defined types in std::simd D. Towner, R. Arutyunyan
Intent Proposal
Mailing Date 2026-02 Pre-Croydon
Target Audience LEWGSG6
Revisions R5R4R3
Tracking issue View on GitHub
Abstract The C++ standard library includes data-parallel types in the `<simd>` header, currently restricting element types to a closed list: arithmetic types and `std::complex` specializations. This paper proposes a minimal change to the specification in which the closed list is replaced with trait-based constraints that handle all existing types while naturally extend support to enumerations, `std::byte`
P3440R2 Add n_elements named constructor to std::simd D. Towner
Intent Proposal
Mailing Date 2026-02 Pre-Croydon
Author(s) Daniel Towner
Target Audience LEWG
Revisions R3
Tracking issue View on GitHub
Abstract When iterating over large dynamic data sets using `std::simd` there will inevitably be situations where the very last block of data doesn’t fill the entire `std::simd` object. This remainder needs to be processed using a partially filled `std::simd` object. For example:
P3971R0 Generalised type rebinding for structures of uniform elements D. Towner
Intent Proposal
Mailing Date 2026-02 Pre-Croydon
Author(s) Daniel Towner
Target Audience LEWG
Revisions R1
Tracking issue View on GitHub
Abstract Modern C++ provides powerful facilities for generic programming, but lacks a uniform way to change the element type of containers and container-like types. Consider a simple requirement: convert a container of `float` values to `double` for higher precision computation.
P3973R0 bit_cast_as: Element type reinterpretation for std::simd D. Towner
Intent Proposal
Mailing Date 2026-02 Pre-Croydon
Author(s) Daniel Towner
Target Audience LEWG
Revisions R1
Tracking issue View on GitHub
Abstract SIMD programming frequently requires reinterpreting vector data at different element granularities—converting packed bytes to shorts, accessing the bit representation of floats, or regrouping data for different operations. While platform intrinsics have long supported this pattern naturally, with `std::simd` programmers must use `std::bit_cast` with fully-specified target types, manually computing
P3983R0 simd object representation D. Towner
Intent Proposal
Mailing Date 2026-02 Pre-Croydon
Author(s) Daniel Towner
Target Audience LEWGLWG
Revisions R2R1
Tracking issue View on GitHub
Abstract The Working Draft makes `simd` types `TriviallyCopyable`, which allows `std::bit_cast` operations. However, the object representation is unspecified, making the results implementation-defined.
P4006R0 Transparent Function Objects for Shift Operators D. Towner
Intent Proposal
Mailing Date 2026-02 Pre-Croydon
Author(s) Daniel Towner
Target Audience LEWG
Tracking issue View on GitHub
Abstract Since C++14, the standard library has provided transparent function objects (functors with `void` template specialization and `is_transparent` member type) for most C++ operators, introduced by [N3421]. However, the shift operators (`<<` and `>>`) were not included.
Showing 7 of 7 papers · source: open-std.org