17template <UnitLike U, NumericValue T>
18inline std::ostream& operator<<(std::ostream& os,
const UnitValue<U, T>& v) {
19 return os << std::format(
"{}", v);
22template <MeasureLike M, NumericValue T>
23inline std::ostream& operator<<(std::ostream& os,
const MeasureValue<M, T>& v) {
24 return os << std::format(
"{}", v);
27template <UnitLike U, NumericValue T>
28inline std::ostream& operator<<(std::ostream& os,
const UnitRangeValue<U, T>& r) {
29 return os << std::format(
"{}", r);
32template <MeasureLike M, NumericValue T>
33inline std::ostream& operator<<(std::ostream& os,
const MeasureRangeValue<M, T>& r) {
34 return os << std::format(
"{}", r);
37inline std::ostream& operator<<(std::ostream& os,
const UnitDescriptor& d) {
38 return os << std::format(
"{}", d);
41inline std::ostream& operator<<(std::ostream& os,
const MeasureDescriptor& d) {
42 return os << std::format(
"{}", d);
MeasureValue<M,T>: a UnitValue tagged with an additional semantic measure.
UnitRangeValue and MeasureRangeValue — closed/open intervals of dimensional values.
Concepts and helper accessors that drive the static side of dimval.
UnitValue<U,T>: a strongly-typed value carrying a compile-time unit tag.