› P2034R9
Partially Mutable Lambda Captures
R. McDougall , L. Garg
2026-09-21
2026-09
Doc Date
2026-09-21
Abstract
`const` and `mutable` extend cleanly to lambda captures. The design is easy to implement, follows the language’s direction, and matches the common model of a lambda as shorthand for an object of a callable struct:
› P2561R3
A control flow operator
B. Revzin
2026-09-12
2026-09
Doc Date
2026-09-12
Abstract
Let’s start with a fairly small example of a series of functions that can generate errors, but don’t themselves handle them - they just need to propagate them up. With exceptions, this might look like:
› P2688R6
Pattern Matching with `match` and `case`
M. Park
2026-09-22
2026-09
Doc Date
2026-09-22
Abstract
This paper proposes pattern matching for C++29. It is the next revision of [[P2688R5]](https://wg21.link/p2688r5), which was considered for C++26 at the February 2025 Hagenberg meeting but did not reach consensus for forwarding to CWG.
› P3951R2
String Interpolation Objects
B. Revzin
2026-09-12
2026-09
Doc Date
2026-09-12
Abstract
The `std::format` approach to formatting offers many significant benefits over the prior `<iostream>`s approach that need not be revisited here. However, `<iostream>` does still have one significant advantage: ordering. It is easy to see at a glance with a long `std::cout` statement which pieces are to be formatted in which order. With `std::format`, as the amount of replacement fields increases,
› P4040R2
Case ranges
J. Schultke
2026-09-21
2026-09
Doc Date
2026-09-21
Abstract
C2y added ranges in `case` labels, such as `case 0 ... 9:`. Such case ranges have also been supported as a C++ compiler extension for many years. This feature should be standardized for C++.
› P4235R0
Removing Digraphs
M. Wippich
2026-09-22
2026-09
Doc Date
2026-09-22
Abstract
Digraphs are a complicated solution to a very old problem, which cause more problems than they solve in a modern environment. Digraphs also severely limit the design space of C++, although as we have seen with [[P2996]](https://www%2eopen-std%2eorg/jtc1/sc22/wg21/docs/papers/2025/p2996r13%2ehtml) we are already fine with special-casing our way out of this pickle.
› P4307R0
An Infix Operator and a Keyword Escape for C++
S. Downey
2026-09-22
2026-09
Doc Date
2026-09-22
Abstract
We propose two uses for one character: the backtick, the last printable ASCII character the language can still usefully claim. One makes any callable a binary operator; the other lets a keyword be escaped for use as an ordinary identifier. Each is independently motivated, and each is defined by rewrite into something the language already has. They are proposed together, with equal standing, becaus
› P4333R0
Asynchronous main
I. Petersen , J. Wong , R. Leahy
2026-09-22
2026-09
Doc Date
2026-09-22
Abstract
This paper proposes that `main` should have an alternate, sender factory form.
› P4341R0
Another take on non-transient constexpr allocation
B. Revzin
2026-09-10
2026-09
Doc Date
2026-09-10
Abstract
This papers proposes a new approach to solving the problem of non-transient constexpr allocation. The result is variables of types like `std::vector<T>` and `std::string` are able persist as `constexpr` variables and, with [[P4340R0] (Extending constant template parameter support by customizing std::meta::reflect_constant)](https://wg21.link/p4340r0), be usable as constant template parameters.
› P4345R0
Extending C++ with Unicode Mathematical Operators
S. Downey
2026-09-22
2026-09
Doc Date
2026-09-22
Abstract
We propose that a user be able to declare `operator⊞` and write `a ⊞ b`. That is the whole feature: a frozen set of Unicode symbols that have never had meaning in C++ becomes available as operator tokens, and an operator drawn from that set is an ordinary overloadable function, found by ordinary lookup, called by ordinary overload resolution.
› P4353R0
Partially Mutable Lambda Captures
R. McDougall , L. Garg
2026-08-19
2026-09
Doc Date
2026-08-19
Abstract
At a high level: we have found that it is simple and straightforward to extend both `const` and `mutable` keywords to lambda syntax in a way that closely mirrors most users’ mental model of lambda as “a means of getting an object of a callable struct”, that is easy to implement, and is in line with the ongoing evolution of the language:
› P4363R0
C++ Contracts compile-time evaluation semantic: static
J. Grant
2026-09-10
2026-09
Doc Date
2026-09-10
Abstract
This paper introduces an additional evaluation semantic for C++ Contracts: **"**`static`**".** This is an additional semantic which sits along side the existing: ignore, observe, enforce, quick-enforce evaluation semantics.
› P4376R0
Do not require module implementation units to import primray module interface implicitly
C. Xu
2026-09-10
2026-09
Doc Date
2026-09-10
Abstract
The other practices shows that this is a real need to fix real problems.
› P4380R0
Token Sequence Injection
B. Revzin , D. Vandevoorde , A. Alexandrescu
2026-09-22
2026-09
Doc Date
2026-09-22
Abstract
This is a follow-up to [[P3294R2] (Code Injection with Token Sequences)](https://wg21.link/p3294r2). In that paper, we argued that the right model for code generation in C++ is through token sequences by comparing to other potential models. In short, we believe that code generation in C++ must be C++-shaped, must be able to generate all of C++, and must allow for the full use of C++ in that genera