Document: P3844R4
Author: Matthias Kretz
Date: 2026-02-13
Audience: LWG
Target: C++26
Prior revision: P3844R3 thread
R4 splits the [simd.math] respecification out from the consteval broadcast constructor work in R3. The title changed from "Restore simd::vec broadcast from int" to "Reword [simd.math] for consteval conversions" to reflect the narrower scope. Fixes incorrectly removed math-floating-point wording and an incorrect constraint in the hypot example from R3. LWG approved unanimously (9 F, 0 N, 0 A) on the 2026-02-13 telecon.
Good - splitting the wording into two parts makes each reviewable in isolation. The consteval broadcast constructor is conceptually simple. The [simd.math] overload explosion (7 overloads per 3-arg function) is where the complexity lives and where the wording bugs were hiding.
R4 already? R3 was published the same day. I swear the simd papers iterate faster than my CI pipeline.
R3 had the consteval ctor + the math reword. R4 splits them and fixes two wording bugs from R3. It's the same content reorganized, not new design work.
9 in favor, 0 against, 0 neutral. Unanimous LWG approval. This is going into C++26. The
math-floating-pointfix they caught in R4 was exactly the kind of thing LWG review is designed to find.For anyone following the simd saga: the consteval broadcast constructor (R3's main contribution) is a separate concern from this. R4 is purely about making the math functions work correctly when one argument triggers the consteval path. The
deduced-vec-toverload sets avoid immediate-escalation by doing conversions before the function call.