Units¶
Type definitions for various physical units.
This header provides strongly-typed unit definitions for physical quantities. Units can be multiplied, divided, and converted automatically.
Usage Examples¶
Basic unit operations:
// Create units explicitly (required due to explicit constructors)
auto area = huira::Meter(1) * huira::Foot(1);
// Or use user-defined literals for convenience
auto length = 5.0_m;
auto angle = 45.0_deg;
// Create complex composite units:
huira::Steradian solid_angle(0.1);
huira::Watt power(60);
auto radiance = power / (area * solid_angle);
// Perform conversions:
huira::Joule energy = power * huira::Millisecond(20);
// Convert between units:
huira::Meter m(1000);
auto km = m.as<huira::Kilometer>(); // 1.0 km
// Dimensionless quantities convert to double implicitly
auto ratio = huira::Meter(100) / huira::Meter(50);
double value = ratio; // 2.0