Document: P3045R7
Author: Mateusz Pusz, Dominik Berner, Johel Ernesto Guerrero Peña, Charles Hogg, Nicolas Holthaus, Roth Michaels, Vincent Reverdy
Date: 2026-02-23
Audience: SG6, SG16, LEWGI
Canonical copy: wg21.link/p3045r7.
This paper proposes a type-safe quantities and units library for C++, building on ideas from mp-units and earlier P2980–P2982 work. The pitch is compile-time dimensional analysis, quantity points versus bare quantities, formatting hooks that line up with modern C++, and extension points for user-defined systems.
If you have only skimmed the abstract: the design leans on templates and symbolic simplification; the usual r/cpp arguments are whether it stays zero overhead in real builds and whether diagnostics stay approachable when someone adds meters to seconds.
great, another paper that will take 10 years to get through LEWG
Sounds amazing until I need three custom systems in one translation unit.
That is exactly what the extensibility sections are trying to address—whether they succeed is a fair question.
I want this for sensor pipelines but our firmware folks will look at the compile times and nope out.
NB: if your codebase still uses macroed unit constants, read the rationale before bikeshedding the spelling of
quantity_point.Sir, this is a Wendy's drive-through, but also here is a godbolt link in the next paper revision I hope.
godbolt.org - because you need to see the assembly.