› N5044
Brno June 2026 Venue (2nd revision)
Hana Dusíková
H. Dusíková
2026-05
Abstract
[WG21](mailto:WG21 (YOU-NEED-JAVASCRIPT-ENABLED) #V0cyMSA8YWxsQGxpc3RzLmlzb2NwcC5vcmc+P3N1YmplY3Q9TjUwNDQ6IEJybm8gSnVuZSAyMDI2IFZlbnVlICgybmQgcmV2aXNpb24p)
› P3125R5
constexpr pointer tagging
Hana Dusíková
H. Dusíková
2026-05
Abstract
Pointer tagging is widely known and used technique ([Glasgow Haskell Compiler](https://takenobu-hs.github.io/downloads/haskell_ghc_illustrated.pdf), LLVM's `[PointerIntPair](https://github.com/llvm/llvm-project/blob/8e5aa538caccef167e8096b2173fdaf2be9cc129/llvm/include/llvm/ADT/PointerIntPair.h#L80)`, `[PointerUnion](https://github.com/llvm/llvm-project/blob/8e5aa538caccef167e8096b2173fdaf2be9cc12
› P3377R0
constexpr `reinterpret_cast` partial replacements
Hana Dusíková
H. Dusíková
,
Gašper Ažman
G. Ažman
2026-05
Abstract
| functionality | runtime only (current status) | runtime & constexpr compatible replacement | status | | --- | --- | --- | --- | | pointer ↔︎ integer | `intptr_t * iptr = reinterpret_cast<intptr_t>(ptr); auto * optr = reinterpret_cast<pointer>(iptr);` | — | not proposed | | pointer tagging | `auto tptr = reinterpret_cast<pointer>( reinterpret_cast<intptr_t>(ptr) \| 0b1u); auto tag = static_cast<b
› P3818R2
constexpr exception library which is unsurprising in potentially constant initialization
Hana Dusíková
H. Dusíková
2026-05
Abstract
To make `constexpr` exception support complete, and allow all functionality withing constant evaluation. This paper was seen in previous revision by LEWG. It didn't get consensus and most of the group prefered the conservative approach of removing `constexpr` from `std::uncaught_exception()` and `std::current_exception()`. The group asked me to revisit this again for C++29.
› P3852R1
constexpr `is_pointer_within` memory area
Hana Dusíková
H. Dusíková
2026-05
Abstract
At first maybe this does seem as somehow arcane or esoteric. But this is a problem worth solving and it will make C++ a bit more expressive.
› P3933R1
constexpr `std::hive`
Hana Dusíková
H. Dusíková
,
NylteJ
NylteJ
2026-05
Abstract
C++ users are often surprised by missing functionality available during constant evaluation, sometimes there is no real reason in the language, it's just no one wrote a paper making the thing `constexpr`. Anecdotally this is often surprise to Jason Turner's students when they start experimenting with `constexpr` code.
› P4013R0
constexpr `any` of all the things
Hana Dusíková
H. Dusíková
2026-05
Abstract
Often you just need to pass a value around, but not interact with it, for that in C++ you have multiple options: template (and keep the type information intact), inheritance (and being force to use intrusive inheritance in your types), passing allocated `(const) void *` pointer (and managing its lifetime), alternatively use `std::unique_ptr` or `std::shared_ptr` with custom deleters, or use a poly
› P4147R0
constexpr => runtime bridge
Hana Dusíková
H. Dusíková
2026-05
Abstract
This paper introduces a customization point which is called when a constant-evaluated value is moving outside of its constant-evaluation (like initialization of `constexpr` variable, or `consteval` function emitting a value to an expression / function evaluated at runtime).
› P4148R1
protocol: Structural Subtyping for C++
Jonathan B. Coe
J. Coe
,
Hana Dusikova
H. Dusikova
,
Antony Peacock
A. Peacock
,
Philip Craig
P. Craig
,
Neelofer Banglawala
N. Banglawala
2026-05
Abstract
We propose `protocol<T,` `A>` and `protocol_view<T>`, standard library vocabulary types for structural subtyping in C++. Interfaces are specified as plain structs; any type whose member functions satisfy the interface is accepted without requiring explicit inheritance.
› P4167R0
reflection annotations to control ADL
Hana Dusíková
H. Dusíková
2026-05
Abstract
This papers provides a customization for ADL via a annotation to add an entity to be associated with a type. It adds a new `<meta>` type to represent the annotation, and it modifies [`[basic.lookup.argdep]`](https://eel.is/c++draft/basic.lookup.argdep)