You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
...or DIMensional analysis With unITS is a C++14 library for compile-time
dimensional analysis and unit awareness.
Minimal Example
#include<iostream>
#include"dimwits.hpp"usingnamespacedimwits;intmain(){
/* quantities play nicely with auto */auto myVelocity = 1.0 * meter / second;
std::cout << "The speed is: " << myVelocity << std::endl;
/* quantities are constexpr friendly */constexpr Quantity< Inch > myLength = 1.0 * meter;
std::cout << "1 meter in inches is: " << myLength << std::endl;
/* quantities of the same dimensionality can be implicitly converted * (conversions are also constexpr friendly) */constexpr Quantity< Foot > otherLength = myLength;
std::cout << "1 meter in feet is: " << otherLength << std::endl;
/* si-prefixes can be specified on either side of the assignment */
Quantity< Kilo<Gram> > myMass = 1.0 * mega(tonne);
std::cout << "1 megatonne in kilograms is: " << myMass << std::endl;
/* NIST values for common physical constants are provided */
std::cout << "The speed of light is: " << constant::lightSpeed << std::endl;
}
This example has the following output:
The speed is: 1 s^-1 m
1 meter in inches is: 39.3701 in
1 meter in feet is: 3.28084 ft
1 megatonne in kilograms is: 1e+09 kg
The speed of light is: 2.99792e+08 s^-1 m
About
A compact C++ header-only library providing compile-time dimensional analysis and unit awareness