diff --git a/src/include/units/physical/fps/length.h b/src/include/units/physical/fps/length.h index 24cd8466..4872c7ea 100644 --- a/src/include/units/physical/fps/length.h +++ b/src/include/units/physical/fps/length.h @@ -33,13 +33,20 @@ struct foot : named_scaled_unit, struct inch : named_scaled_unit, foot> {}; -struct yard : named_scaled_unit, foot> {}; +// thousandth of an inch +struct thousandth : named_scaled_unit, inch> {}; +struct thou : alias_unit{}; +struct mil : alias_unit{}; + +struct yard : named_scaled_unit, foot> {}; struct fathom : named_scaled_unit, foot> {}; +struct kiloyard : prefixed_unit {}; + struct mile : named_scaled_unit, foot> {}; -struct nautical_mile : named_scaled_unit, yard> {}; +struct nautical_mile : named_scaled_unit, yard> {}; @@ -50,6 +57,11 @@ using length = quantity; inline namespace literals { +// Thousandth +constexpr auto operator"" q_thou(unsigned long long l) { return length(l); } +constexpr auto operator"" q_thou(long double l) { return length(l); } + + // Inch constexpr auto operator"" q_in(unsigned long long l) { return length(l); } constexpr auto operator"" q_in(long double l) { return length(l); } @@ -66,6 +78,10 @@ constexpr auto operator"" q_yd(long double l) { return length constexpr auto operator"" q_ftm(unsigned long long l) { return length(l); } constexpr auto operator"" q_ftm(long double l) { return length(l); } +// Kiloyard +constexpr auto operator"" q_kyd(unsigned long long l) { return length(l); } +constexpr auto operator"" q_kyd(long double l) { return length(l); } + // Mile constexpr auto operator"" q_mile(unsigned long long l) { return length(l); } constexpr auto operator"" q_mile(long double l) { return length(l); }