diff --git a/src/core/include/mp-units/framework/dimension.h b/src/core/include/mp-units/framework/dimension.h index 47dac3bb..579f68a6 100644 --- a/src/core/include/mp-units/framework/dimension.h +++ b/src/core/include/mp-units/framework/dimension.h @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -55,7 +56,7 @@ MP_UNITS_EXPORT struct dimension_one; namespace detail { template -struct base_dimension_less : std::bool_constant<(Lhs::symbol < Rhs::symbol)> {}; +struct base_dimension_less : std::bool_constant() < type_name()> {}; template using type_list_of_base_dimension_less = expr_less; diff --git a/src/core/include/mp-units/framework/unit.h b/src/core/include/mp-units/framework/unit.h index 56e7182d..62fb43a7 100644 --- a/src/core/include/mp-units/framework/unit.h +++ b/src/core/include/mp-units/framework/unit.h @@ -108,7 +108,7 @@ template [[nodiscard]] consteval auto get_canonical_unit_impl(T, const scaled_unit_impl&); template -struct unit_less : std::bool_constant<(Lhs::symbol < Rhs::symbol)> {}; +struct unit_less : std::bool_constant() < type_name()> {}; template using type_list_of_unit_less = expr_less; diff --git a/test/static/quantity_test.cpp b/test/static/quantity_test.cpp index b813731d..8d3b68f7 100644 --- a/test/static/quantity_test.cpp +++ b/test/static/quantity_test.cpp @@ -518,7 +518,7 @@ static_assert(is_of_type>); static_assert(is_of_type>); -static_assert(is_of_type<1 * N * (1 * m), quantity{}, int>>); +static_assert(is_of_type<1 * N * (1 * m), quantity{}, int>>); static_assert(is_of_type<1 * m * 1, quantity>); static_assert(is_of_type<1 * m * (1 * one), quantity>); @@ -566,7 +566,7 @@ static_assert(is_of_type<1 * m - 1. * m, quantity>); static_assert(is_of_type<1. * km - 1 * m, quantity>); static_assert(is_of_type<1. * m - 1 * km, quantity>); -static_assert(is_of_type<1. * N * (1 * m), quantity{}, double>>); +static_assert(is_of_type<1. * N * (1 * m), quantity{}, double>>); static_assert(is_of_type<1 * m * 1., quantity>); static_assert(is_of_type<1 * m * (1. * one), quantity>); @@ -619,7 +619,7 @@ static_assert(is_of_type<1 * m % (1 * km), quantity>); static_assert(is_of_type<1 * m / s * (1 * s), quantity>); static_assert(is_of_type<1 * m / s * (1 * h), quantity>{}, int>>); -static_assert(is_of_type<1 * m * (1 * min), quantity{}, int>>); +static_assert(is_of_type<1 * m * (1 * min), quantity{}, int>>); static_assert(is_of_type<1 * s * (1 * Hz), quantity{}, int>>); static_assert(is_of_type<1 / (1 * min), quantity>{}, int>>); static_assert(is_of_type<1 / (1 * Hz), quantity>{}, int>>); diff --git a/test/static/unit_symbol_test.cpp b/test/static/unit_symbol_test.cpp index c61ae300..1a7ea663 100644 --- a/test/static/unit_symbol_test.cpp +++ b/test/static/unit_symbol_test.cpp @@ -184,7 +184,7 @@ static_assert(unit_symbol(radian) == "rad"); // Physical constants static_assert(unit_symbol(si2019::speed_of_light_in_vacuum) == "c"); -static_assert(unit_symbol(gram * standard_gravity * si2019::speed_of_light_in_vacuum) == "c g g₀"); +static_assert(unit_symbol(gram * standard_gravity * si2019::speed_of_light_in_vacuum) == "g c g₀"); static_assert(unit_symbol(gram / standard_gravity) == "g/g₀"); static_assert(unit_symbol(kilo / second / mega) == "km Mpc⁻¹ s⁻¹"); diff --git a/test/static/unit_test.cpp b/test/static/unit_test.cpp index f0b330a6..3ff7d977 100644 --- a/test/static/unit_test.cpp +++ b/test/static/unit_test.cpp @@ -210,8 +210,7 @@ static_assert(kilojoule.symbol == "kJ"); static_assert(is_of_type, si::kilo_>); static_assert(is_of_type, si::kilo_>); -static_assert( - is_of_type)>, metre_>>); // !!! +static_assert(is_of_type>>); // !!! static_assert( is_of_type)>, per>>); // !!! @@ -331,9 +330,9 @@ static_assert(is_of_type>>); static_assert(is_of_type); static_assert(is_of_type>); + derived_unit>); static_assert(is_of_type>); + derived_unit>); static_assert(is_same_v); static_assert(is_same_v);