Let the Compiler Check Your Units -- Wu Yongwei
Mixing your units can be disastrous. Wu Yongwei takes a quick look at C++ unit libraries that can help keep everything in order.
Let the Compiler Check Your Units
by Wu Yongwei
From the article:
I recently came across a C++ standard proposal P3045 [P3045R7], which aims to add physical units to C++. Curious, I looked into the existing unit libraries and went down quite a rabbit hole.
Type safety and user-defined literals
Before exploring these libraries, I was already somewhat familiar with the idea of ‘type safety’. I was also aware that user-defined literals (UDLs) [CppReference-1] allow creating literals of specific types with ease. Typical uses in the standard library include
string/string_viewliterals and the chrono library [CppReference-2], which make code both convenient and safe.Figure 1 shows some simple examples.
auto msg = "Hello "s + user_name; auto t1 = chrono::steady_clock::now(); this_thread::sleep_for(500ms); auto t2 = chrono::steady_clock::now(); auto duration = t2 - t1; auto what = t1 + t2; // Can't compile cout << duration / 1.0ms; // To double, in ms

Registration is now open for CppCon 2026! The conference starts on September 12 and will be held
Registration is now open for CppCon 2026! The conference starts on September 12 and will be held
In today's post, I will explain one of C++'s biggest pitfalls: