@@ -315,8 +315,9 @@ template <isQuantity Q, isQuantity R> constexpr bool operator>(const Q& lhs, con
315315 std::ratio<j>, std::ratio<n>>(static_cast <double >(value))); \
316316 } \
317317 template <> struct std ::formatter<Name> : std::formatter<double > { \
318- auto format (const Name& quantity, std::format_context& ctx) const { \
319- return std::format_to (ctx.out (), " {}_##suffix" , quantity.internal ()); \
318+ auto format (const Name& number, std::format_context& ctx) const { \
319+ auto formatted_double = std::formatter<double >::format (number.internal (), ctx); \
320+ return std::format_to (formatted_double, " _" #suffix); \
320321 } \
321322 }; \
322323 inline std::ostream& operator <<(std::ostream& os, const Name& quantity) { \
@@ -610,25 +611,30 @@ template <isQuantity Q, isQuantity R> constexpr Q round(const Q& lhs, const R& r
610611
611612// Convert an angular unit `Q` to a linear unit correctly;
612613// mostly useful for velocities
613- template <isQuantity Q> Quantity<typename Q::mass, typename Q::angle, typename Q::time, typename Q::current,
614- typename Q::length, typename Q::temperature, typename Q::luminosity, typename Q::moles>
615- toLinear (Quantity<typename Q::mass, typename Q::length, typename Q::time, typename Q::current, typename Q::angle,
616- typename Q::temperature, typename Q::luminosity, typename Q::moles>
617- angular,
618- Length diameter) {
614+ template <isQuantity Q>
615+ Quantity<typename Q::mass, typename Q::angle, typename Q::time, typename Q::current, typename Q::length,
616+ typename Q::temperature, typename Q::luminosity,
617+ typename Q::moles> constexpr toLinear (Quantity<typename Q::mass, typename Q::length, typename Q::time,
618+ typename Q::current, typename Q::angle, typename Q::temperature,
619+ typename Q::luminosity, typename Q::moles>
620+ angular,
621+ Length diameter) {
619622 return unit_cast<Quantity<typename Q::mass, typename Q::angle, typename Q::time, typename Q::current,
620623 typename Q::length, typename Q::temperature, typename Q::luminosity, typename Q::moles>>(
621624 angular * (diameter / 2.0 ));
622625}
623626
624627// Convert an linear unit `Q` to a angular unit correctly;
625628// mostly useful for velocities
626- template <isQuantity Q> Quantity<typename Q::mass, typename Q::angle, typename Q::time, typename Q::current,
627- typename Q::length, typename Q::temperature, typename Q::luminosity, typename Q::moles>
628- toAngular (Quantity<typename Q::mass, typename Q::length, typename Q::time, typename Q::current, typename Q::angle,
629- typename Q::temperature, typename Q::luminosity, typename Q::moles>
630- linear,
631- Length diameter) {
629+ template <isQuantity Q>
630+ Quantity<typename Q::mass, typename Q::angle, typename Q::time, typename Q::current, typename Q::length,
631+ typename Q::temperature, typename Q::luminosity,
632+ typename Q::moles> constexpr toAngular (Quantity<typename Q::mass, typename Q::length, typename Q::time,
633+ typename Q::current, typename Q::angle,
634+ typename Q::temperature, typename Q::luminosity,
635+ typename Q::moles>
636+ linear,
637+ Length diameter) {
632638 return unit_cast<Quantity<typename Q::mass, typename Q::angle, typename Q::time, typename Q::current,
633639 typename Q::length, typename Q::temperature, typename Q::luminosity, typename Q::moles>>(
634640 linear / (diameter / 2.0 ));
0 commit comments