mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-04 12:54:25 +02:00
fix: extraneous space in unit symbol having only denominators removed
This commit is contained in:
@@ -859,18 +859,16 @@ constexpr Out unit_symbol_impl(Out out, const type_list<Nums...>& nums, const ty
|
|||||||
return unit_symbol_impl<CharT>(out, nums, fmt, false);
|
return unit_symbol_impl<CharT>(out, nums, fmt, false);
|
||||||
} else {
|
} else {
|
||||||
using enum unit_symbol_solidus;
|
using enum unit_symbol_solidus;
|
||||||
if constexpr (sizeof...(Nums) > 0) {
|
if constexpr (sizeof...(Nums) > 0) out = unit_symbol_impl<CharT>(out, nums, fmt, false);
|
||||||
out = unit_symbol_impl<CharT>(out, nums, fmt, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fmt.solidus == always || (fmt.solidus == one_denominator && sizeof...(Dens) == 1)) {
|
if (fmt.solidus == always || (fmt.solidus == one_denominator && sizeof...(Dens) == 1)) {
|
||||||
if constexpr (sizeof...(Nums) == 0) *out++ = '1';
|
if constexpr (sizeof...(Nums) == 0) *out++ = '1';
|
||||||
*out++ = '/';
|
*out++ = '/';
|
||||||
} else {
|
if (sizeof...(Dens) > 1) *out++ = '(';
|
||||||
|
} else if constexpr (sizeof...(Nums) > 0) {
|
||||||
out = print_separator<CharT>(out, fmt);
|
out = print_separator<CharT>(out, fmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fmt.solidus == always && sizeof...(Dens) > 1) *out++ = '(';
|
|
||||||
const bool negative_power = fmt.solidus == never || (fmt.solidus == one_denominator && sizeof...(Dens) > 1);
|
const bool negative_power = fmt.solidus == never || (fmt.solidus == one_denominator && sizeof...(Dens) > 1);
|
||||||
out = unit_symbol_impl<CharT>(out, dens, fmt, negative_power);
|
out = unit_symbol_impl<CharT>(out, dens, fmt, negative_power);
|
||||||
if (fmt.solidus == always && sizeof...(Dens) > 1) *out++ = ')';
|
if (fmt.solidus == always && sizeof...(Dens) > 1) *out++ = ')';
|
||||||
|
@@ -175,6 +175,8 @@ static_assert(unit_symbol<usf{.solidus = never}>(kilogram * metre / square(secon
|
|||||||
static_assert(unit_symbol<usf{.encoding = ascii, .solidus = never}>(kilogram * metre / square(second)) == "kg m s^-2");
|
static_assert(unit_symbol<usf{.encoding = ascii, .solidus = never}>(kilogram * metre / square(second)) == "kg m s^-2");
|
||||||
static_assert(unit_symbol<usf{.solidus = never, .separator = half_high_dot}>(kilogram * metre / square(second)) ==
|
static_assert(unit_symbol<usf{.solidus = never, .separator = half_high_dot}>(kilogram * metre / square(second)) ==
|
||||||
"kg⋅m⋅s⁻²");
|
"kg⋅m⋅s⁻²");
|
||||||
|
static_assert(unit_symbol(one / metre / square(second)) == "m⁻¹ s⁻²");
|
||||||
|
static_assert(unit_symbol<usf{.solidus = always}>(one / metre / square(second)) == "1/(m s²)");
|
||||||
static_assert(unit_symbol(kilogram / metre / square(second)) == "kg m⁻¹ s⁻²");
|
static_assert(unit_symbol(kilogram / metre / square(second)) == "kg m⁻¹ s⁻²");
|
||||||
static_assert(unit_symbol<usf{.separator = half_high_dot}>(kilogram / metre / square(second)) == "kg⋅m⁻¹⋅s⁻²");
|
static_assert(unit_symbol<usf{.separator = half_high_dot}>(kilogram / metre / square(second)) == "kg⋅m⁻¹⋅s⁻²");
|
||||||
static_assert(unit_symbol<usf{.encoding = ascii}>(kilogram / metre / square(second)) == "kg m^-1 s^-2");
|
static_assert(unit_symbol<usf{.encoding = ascii}>(kilogram / metre / square(second)) == "kg m^-1 s^-2");
|
||||||
|
Reference in New Issue
Block a user