Skip to content

Implementation Details

This section is for reference docs which most end users won’t often encounter directly. We collect these docs in this subfolder to keep the main folder less cluttered. Here’s a guide to the content:

  • Dimensions. This is how we keep track of which units are mutually compatible, in the sense that they can be compared and converted with each other.

  • Monovalue Types. This isn’t a specific type in the library; rather, it’s a “concept” (loosely defined)1 which many core library types model.

  • Parameter Packs. The most critical foundation for the library is parameter packs, because this is how we implement the vector spaces which underpin dimensions, magnitudes, and compound units.


  1. We’re using “concept” in a loose, conceptual sense, rather than in the sense of the language element which was added in C++20.