diff --git a/docs/framework/dimensions.rst b/docs/framework/dimensions.rst index f6000772..2f07fe33 100644 --- a/docs/framework/dimensions.rst +++ b/docs/framework/dimensions.rst @@ -85,7 +85,7 @@ and `si::metre` is a :term:`base unit` of this base dimension. We can obtain those back easily with:: static_assert(si::dim_length::symbol == "L"); - static_assert(std::is_same_v); + static_assert(is_same_v); Derived Dimensions @@ -169,8 +169,8 @@ Obtaining a Unit of the Dimension In order to obtain the base/coherent unit of any dimension type a `dimension_unit` helper was introduced:: - static_assert(std::is_same_v, si::metre>); - static_assert(std::is_same_v, si::metre_per_second>); + static_assert(is_same_v, si::metre>); + static_assert(is_same_v, si::metre_per_second>); .. rubric:: Citations: diff --git a/docs/use_cases/unknown_dimensions.rst b/docs/use_cases/unknown_dimensions.rst index 3e778ebc..3456358e 100644 --- a/docs/use_cases/unknown_dimensions.rst +++ b/docs/use_cases/unknown_dimensions.rst @@ -27,8 +27,8 @@ will determine its type. The same applies to the resulting unit. For example: using namespace units::physical::si; constexpr auto result = 144q_km / 2q_h; - static_assert(std::is_same_v); - static_assert(std::is_same_v); + static_assert(is_same_v); + static_assert(is_same_v); However, if the resulting dimension is not predefined by the user the library framework will create an instance of an `unknown_dimension`. The coherent unit of such an unknown @@ -45,10 +45,10 @@ we forget to include a header file with the resulting dimension definition: using namespace units::physical::si; constexpr auto result = 144q_km / 2q_h; - static_assert(std::is_same_v, exp>>); - static_assert(std::is_same_v, unknown_coherent_unit>>); + static_assert(is_same_v, exp>>); + static_assert(is_same_v>); Operations On Unknown Dimensions And Their Units diff --git a/src/include/units/bits/dimension_op.h b/src/include/units/bits/dimension_op.h index 58526c6e..7d6478cf 100644 --- a/src/include/units/bits/dimension_op.h +++ b/src/include/units/bits/dimension_op.h @@ -30,15 +30,15 @@ namespace units { // equivalent_dim namespace detail { +template +using equivalent_base_dim = std::conjunction, + same_unit_reference>; + template struct equivalent_dim_impl : std::false_type {}; template -struct equivalent_base_dim : std::conjunction, - same_unit_reference> {}; - -template -struct equivalent_dim_impl : std::disjunction, equivalent_base_dim> {}; +struct equivalent_dim_impl : std::disjunction, equivalent_base_dim> {}; template struct equivalent_exp : std::false_type {}; @@ -54,7 +54,7 @@ template struct equivalent_derived_dim, derived_dimension_base> : std::conjunction...> {}; template -struct equivalent_dim_impl : std::disjunction, equivalent_derived_dim, downcast_base_t>> {}; +struct equivalent_dim_impl : std::disjunction, equivalent_derived_dim, downcast_base_t>> {}; } // namespace detail diff --git a/src/include/units/bits/external/type_traits.h b/src/include/units/bits/external/type_traits.h index 400f3eb6..4ebfb424 100644 --- a/src/include/units/bits/external/type_traits.h +++ b/src/include/units/bits/external/type_traits.h @@ -46,6 +46,16 @@ struct conditional_impl { template using conditional = detail::conditional_impl::template type; +// is_same +template +inline constexpr bool is_same_v = false; + +template +inline constexpr bool is_same_v = true; + +template +using is_same = std::bool_constant>; + // is_instantiation_of namespace detail { diff --git a/src/include/units/bits/to_string.h b/src/include/units/bits/to_string.h index 7b052cb3..3bd685b5 100644 --- a/src/include/units/bits/to_string.h +++ b/src/include/units/bits/to_string.h @@ -74,11 +74,11 @@ constexpr auto prefix_or_ratio_text() return basic_fixed_string(""); } else { - if constexpr (!std::is_same_v) { + if constexpr (!is_same_v) { // try to form a prefix using prefix = downcast>; - if constexpr(!std::is_same_v>) { + if constexpr(!is_same_v>) { // print as a prefixed unit return prefix::symbol; } diff --git a/src/include/units/unit.h b/src/include/units/unit.h index 32f04eac..8010dba1 100644 --- a/src/include/units/unit.h +++ b/src/include/units/unit.h @@ -63,7 +63,7 @@ template using downcast_unit = downcast::reference>>; template -struct same_unit_reference : std::is_same {}; +struct same_unit_reference : is_same {}; /** * @brief An unnamed unit diff --git a/test/unit_test/static/custom_unit_test.cpp b/test/unit_test/static/custom_unit_test.cpp index b2e4aff1..5f773cb2 100644 --- a/test/unit_test/static/custom_unit_test.cpp +++ b/test/unit_test/static/custom_unit_test.cpp @@ -49,11 +49,11 @@ using amplitude_spectral_density = quantity, dim_amplitude_spectral_density>); -static_assert(std::is_same_v, dim_power_spectral_density>); +static_assert(is_same_v, dim_amplitude_spectral_density>); +static_assert(is_same_v, dim_power_spectral_density>); -static_assert(std::is_same_v(amplitude_spectral_density(4))), decltype(power_spectral_density(16))>); -static_assert(std::is_same_v(16))), decltype(amplitude_spectral_density(4))>); +static_assert(is_same_v(amplitude_spectral_density(4))), decltype(power_spectral_density(16))>); +static_assert(is_same_v(16))), decltype(amplitude_spectral_density(4))>); } @@ -63,6 +63,6 @@ struct kilogram_per_second : unit {}; struct dim_mass_rate : derived_dimension, units::exp> {}; struct kilogram_per_hour : deduced_unit {}; constexpr auto a = 1q_kg / 1q_h; -static_assert(std::is_same_v); +static_assert(is_same_v); } diff --git a/test/unit_test/static/dimension_op_test.cpp b/test/unit_test/static/dimension_op_test.cpp index 84d5c281..b96daafc 100644 --- a/test/unit_test/static/dimension_op_test.cpp +++ b/test/unit_test/static/dimension_op_test.cpp @@ -39,8 +39,8 @@ struct d3 : base_dimension<"d3", u3> {}; // exp_invert -static_assert(std::is_same_v>, units::exp>); -static_assert(std::is_same_v>, units::exp>); +static_assert(is_same_v>, units::exp>); +static_assert(is_same_v>, units::exp>); // dim_unpack @@ -53,67 +53,67 @@ using dim_unpack = detail::dim_unpack::type; template using derived_dim = detail::derived_dimension_base; -static_assert(std::is_same_v, exp_list<>>); -static_assert(std::is_same_v>, exp_list>>); -static_assert(std::is_same_v, units::exp>, exp_list, units::exp>>); +static_assert(is_same_v, exp_list<>>); +static_assert(is_same_v>, exp_list>>); +static_assert(is_same_v, units::exp>, exp_list, units::exp>>); using dim1 = derived_dim>; using dim2 = derived_dim, units::exp>; -static_assert(std::is_same_v, units::exp>, exp_list, units::exp>>); -static_assert(std::is_same_v, units::exp, units::exp>, +static_assert(is_same_v, units::exp>, exp_list, units::exp>>); +static_assert(is_same_v, units::exp, units::exp>, exp_list, units::exp, units::exp, units::exp>>); // dim_invert -static_assert(std::is_same_v>>, d0>); -static_assert(std::is_same_v>>, unknown_dimension>>); +static_assert(is_same_v>>, d0>); +static_assert(is_same_v>>, unknown_dimension>>); static_assert( - std::is_same_v, units::exp>>, unknown_dimension, units::exp>>); + is_same_v, units::exp>>, unknown_dimension, units::exp>>); // make_dimension template using make_dimension = detail::make_dimension; -static_assert(std::is_same_v>, derived_dim>>); -static_assert(std::is_same_v, units::exp>, derived_dim, units::exp>>); -static_assert(std::is_same_v, units::exp>, derived_dim, units::exp>>); -static_assert(std::is_same_v, units::exp>, derived_dim>>); -static_assert(std::is_same_v, units::exp>, derived_dim>>); -static_assert(std::is_same_v, units::exp>, derived_dim>>); -static_assert(std::is_same_v, units::exp>, derived_dim>>); +static_assert(is_same_v>, derived_dim>>); +static_assert(is_same_v, units::exp>, derived_dim, units::exp>>); +static_assert(is_same_v, units::exp>, derived_dim, units::exp>>); +static_assert(is_same_v, units::exp>, derived_dim>>); +static_assert(is_same_v, units::exp>, derived_dim>>); +static_assert(is_same_v, units::exp>, derived_dim>>); +static_assert(is_same_v, units::exp>, derived_dim>>); -static_assert(std::is_same_v, units::exp, units::exp, units::exp>, +static_assert(is_same_v, units::exp, units::exp, units::exp>, derived_dim, units::exp>>); -static_assert(std::is_same_v, units::exp, units::exp, units::exp>, +static_assert(is_same_v, units::exp, units::exp, units::exp>, derived_dim, units::exp>>); -static_assert(std::is_same_v, units::exp, units::exp>, derived_dim>>); -static_assert(std::is_same_v, units::exp, units::exp>, derived_dim>>); -static_assert(std::is_same_v, units::exp, units::exp>, derived_dim>>); +static_assert(is_same_v, units::exp, units::exp>, derived_dim>>); +static_assert(is_same_v, units::exp, units::exp>, derived_dim>>); +static_assert(is_same_v, units::exp, units::exp>, derived_dim>>); // dimension_multiply -static_assert(std::is_same_v>, derived_dim>>, +static_assert(is_same_v>, derived_dim>>, unknown_dimension, units::exp>>); static_assert( - std::is_same_v>, d1>, unknown_dimension, units::exp>>); + is_same_v>, d1>, unknown_dimension, units::exp>>); static_assert( - std::is_same_v>>, unknown_dimension, units::exp>>); -static_assert(std::is_same_v, unknown_dimension, units::exp>>); -static_assert(std::is_same_v< + is_same_v>>, unknown_dimension, units::exp>>); +static_assert(is_same_v, unknown_dimension, units::exp>>); +static_assert(is_same_v< dimension_multiply, units::exp, units::exp>, derived_dim>>, unknown_dimension, units::exp, units::exp, units::exp>>); -static_assert(std::is_same_v< +static_assert(is_same_v< dimension_multiply, units::exp, units::exp>, derived_dim>>, unknown_dimension, units::exp, units::exp>>); -static_assert(std::is_same_v< +static_assert(is_same_v< dimension_multiply, units::exp, units::exp>, derived_dim>>, unknown_dimension, units::exp>>); -static_assert(std::is_same_v>, derived_dim>>, d0>); +static_assert(is_same_v>, derived_dim>>, d0>); // dimension_divide -static_assert(std::is_same_v>, derived_dim>>, +static_assert(is_same_v>, derived_dim>>, unknown_dimension, units::exp>>); -static_assert(std::is_same_v>, unknown_dimension>>, d0>); +static_assert(is_same_v>, unknown_dimension>>, d0>); } // namespace diff --git a/test/unit_test/static/math_test.cpp b/test/unit_test/static/math_test.cpp index 00bdc902..e32967de 100644 --- a/test/unit_test/static/math_test.cpp +++ b/test/unit_test/static/math_test.cpp @@ -27,17 +27,18 @@ namespace { + using namespace units; using namespace units::physical::si::literals; using namespace units::physical::international::literals; - static_assert(std::is_same_v(2q_m)), std::int64_t>); - static_assert(std::is_same_v(2q_m)), decltype(2q_m)>); - static_assert(std::is_same_v(2q_m)), decltype(4q_m2)>); - static_assert(std::is_same_v(2q_km)), decltype(4q_km2)>); - static_assert(std::is_same_v(2q_ft)), decltype(4q_ft2)>); - static_assert(std::is_same_v); - static_assert(std::is_same_v); - static_assert(std::is_same_v); + static_assert(is_same_v(2q_m)), std::int64_t>); + static_assert(is_same_v(2q_m)), decltype(2q_m)>); + static_assert(is_same_v(2q_m)), decltype(4q_m2)>); + static_assert(is_same_v(2q_km)), decltype(4q_km2)>); + static_assert(is_same_v(2q_ft)), decltype(4q_ft2)>); + static_assert(is_same_v); + static_assert(is_same_v); + static_assert(is_same_v); } // namespace diff --git a/test/unit_test/static/quantity_point_test.cpp b/test/unit_test/static/quantity_point_test.cpp index 4847627a..ba5d3aa0 100644 --- a/test/unit_test/static/quantity_point_test.cpp +++ b/test/unit_test/static/quantity_point_test.cpp @@ -51,10 +51,10 @@ static_assert(invalid_types); // member types -static_assert(std::is_same_v::rep, int>); -static_assert(std::is_same_v::rep, double>); -static_assert(std::is_same_v::unit, metre>); -static_assert(std::is_same_v::unit, kilometre>); +static_assert(is_same_v::rep, int>); +static_assert(is_same_v::rep, double>); +static_assert(is_same_v::unit, metre>); +static_assert(is_same_v::unit, kilometre>); // constructors @@ -119,23 +119,23 @@ static_assert((quantity_point(2q_m) -= 1q_m).relative().count() == 1); // non-member arithmetic operators -static_assert(std::is_same_v() + length()), +static_assert(is_same_v() + length()), quantity_point>); -static_assert(std::is_same_v() + quantity_point()), +static_assert(is_same_v() + quantity_point()), quantity_point>); -static_assert(std::is_same_v() + length()), +static_assert(is_same_v() + length()), quantity_point>); -static_assert(std::is_same_v() + quantity_point()), +static_assert(is_same_v() + quantity_point()), quantity_point>); -static_assert(std::is_same_v() - length()), +static_assert(is_same_v() - length()), quantity_point>); -static_assert(std::is_same_v() - length()), +static_assert(is_same_v() - length()), quantity_point>); static_assert( - std::is_same_v() - quantity_point()), + is_same_v() - quantity_point()), length>); static_assert( - std::is_same_v() - quantity_point()), + is_same_v() - quantity_point()), length>); static_assert((1q_m + km).relative().count() == 1001); @@ -187,13 +187,13 @@ static_assert(QuantityPoint>); // common_quantity_point -static_assert(std::is_same_v< +static_assert(is_same_v< common_quantity_point, quantity_point>, quantity_point>); -static_assert(std::is_same_v, +static_assert(is_same_v, quantity_point>, quantity_point>); -static_assert(std::is_same_v, +static_assert(is_same_v, quantity_point>, quantity_point>); @@ -209,7 +209,7 @@ static_assert(std::equality_comparable_with>(quantity_point(2q_km)))::unit, metre>); + is_same_v>(quantity_point(2q_km)))::unit, metre>); static_assert(quantity_point_cast>(quantity_point(2q_km)).relative().count() == 2000); diff --git a/test/unit_test/static/quantity_test.cpp b/test/unit_test/static/quantity_test.cpp index 3ebb77b1..8d0bd693 100644 --- a/test/unit_test/static/quantity_test.cpp +++ b/test/unit_test/static/quantity_test.cpp @@ -43,10 +43,10 @@ using namespace units::physical::si; // member types -static_assert(std::is_same_v::rep, int>); -static_assert(std::is_same_v::rep, double>); -static_assert(std::is_same_v::unit, metre>); -static_assert(std::is_same_v::unit, kilometre>); +static_assert(is_same_v::rep, int>); +static_assert(is_same_v::rep, double>); +static_assert(is_same_v::unit, metre>); +static_assert(is_same_v::unit, kilometre>); // constructors @@ -126,37 +126,37 @@ static_assert((7q_m %= 2q_m).count() == 1); // non-member arithmetic operators -static_assert(std::is_same_v() + length()), length>); -static_assert(std::is_same_v() + length()), length>); +static_assert(is_same_v() + length()), length>); +static_assert(is_same_v() + length()), length>); static_assert( - std::is_same_v() + length()), length>); -static_assert(std::is_same_v() - length()), length>); + is_same_v() + length()), length>); +static_assert(is_same_v() - length()), length>); static_assert( - std::is_same_v() - length()), length>); -static_assert(std::is_same_v() * 1.0), length>); -static_assert(std::is_same_v()), length>); + is_same_v() - length()), length>); +static_assert(is_same_v() * 1.0), length>); +static_assert(is_same_v()), length>); static_assert( - std::is_same_v() * physical::si::time()), length>); + is_same_v() * physical::si::time()), length>); static_assert( - std::is_same_v() * physical::si::time()), length, int>>); -static_assert(std::is_same_v() * physical::si::time()), + is_same_v() * physical::si::time()), length, int>>); +static_assert(is_same_v() * physical::si::time()), quantity, units::exp>, scaled_unit>>); -static_assert(std::is_same_v()), frequency>); -static_assert(std::is_same_v()), frequency, int>>); -static_assert(std::is_same_v()), physical::si::time>); -static_assert(std::is_same_v()), +static_assert(is_same_v()), frequency>); +static_assert(is_same_v()), frequency, int>>); +static_assert(is_same_v()), physical::si::time>); +static_assert(is_same_v()), quantity>, scaled_unit>>); -static_assert(std::is_same_v() / 1.0), length>); -static_assert(std::is_same_v() / length()), double>); -static_assert(std::is_same_v() / length()), double>); +static_assert(is_same_v() / 1.0), length>); +static_assert(is_same_v() / length()), double>); +static_assert(is_same_v() / length()), double>); static_assert( - std::is_same_v() / physical::si::time()), speed>); + is_same_v() / physical::si::time()), speed>); static_assert( - std::is_same_v() / physical::si::time()), speed>>); -static_assert(std::is_same_v() / length()), + is_same_v() / physical::si::time()), speed>>); +static_assert(is_same_v() / length()), quantity, units::exp>, scaled_unit>>); -static_assert(std::is_same_v() % short(1)), length>); -static_assert(std::is_same_v() % length(1)), length>); +static_assert(is_same_v() % short(1)), length>); +static_assert(is_same_v() % length(1)), length>); static_assert((1q_m + km).count() == 1001); static_assert((1q_m + 1q_km).count() == 1001); @@ -217,10 +217,10 @@ static_assert(Quantity>); // common_quantity -static_assert(std::is_same_v, length>, length>); +static_assert(is_same_v, length>, length>); static_assert( - std::is_same_v, length>, length>); -static_assert(std::is_same_v, length>, + is_same_v, length>, length>); +static_assert(is_same_v, length>, length>); // common_type @@ -234,7 +234,7 @@ static_assert(std::equality_comparable_with) // quantity_cast -static_assert(std::is_same_v>(2q_km))::unit, metre>); +static_assert(is_same_v>(2q_km))::unit, metre>); static_assert(quantity_cast>(2q_km).count() == 2000); static_assert(quantity_cast>(2000q_m).count() == 2); @@ -263,6 +263,6 @@ static_assert(1q_km / 1q_s == 1000q_m_per_s); static_assert(2q_km_per_h * 2q_h == 4q_km); static_assert(2q_km / 2q_km_per_h == 1q_h); -static_assert(std::is_same_v(2q_m)), decltype(4q_m2)>); +static_assert(is_same_v(2q_m)), decltype(4q_m2)>); } // namespace diff --git a/test/unit_test/static/si_test.cpp b/test/unit_test/static/si_test.cpp index 911c644a..a1b339f0 100644 --- a/test/unit_test/static/si_test.cpp +++ b/test/unit_test/static/si_test.cpp @@ -237,7 +237,7 @@ static_assert(kilogray::symbol == "kGy"); // speed -static_assert(std::is_same_v, std::int64_t>>); +static_assert(is_same_v, std::int64_t>>); static_assert(10q_m / 5q_s == 2q_m_per_s); static_assert(10 / 5q_s * 1q_m == 2q_m_per_s); diff --git a/test/unit_test/static/type_list_test.cpp b/test/unit_test/static/type_list_test.cpp index c29f0c54..d1afb67e 100644 --- a/test/unit_test/static/type_list_test.cpp +++ b/test/unit_test/static/type_list_test.cpp @@ -34,63 +34,63 @@ struct type_list; // type_list_push_front -static_assert(std::is_same_v, int>, type_list>); -static_assert(std::is_same_v, int, long, double>, type_list>); -static_assert(std::is_same_v, int, long>, type_list>); +static_assert(is_same_v, int>, type_list>); +static_assert(is_same_v, int, long, double>, type_list>); +static_assert(is_same_v, int, long>, type_list>); // type_list_push_back -static_assert(std::is_same_v, int>, type_list>); -static_assert(std::is_same_v, int, long, double>, type_list>); -static_assert(std::is_same_v, int, long>, type_list>); +static_assert(is_same_v, int>, type_list>); +static_assert(is_same_v, int, long, double>, type_list>); +static_assert(is_same_v, int, long>, type_list>); -static_assert(std::is_same_v>, type_list<>>); -static_assert(std::is_same_v, type_list<>>, type_list<>>); -static_assert(std::is_same_v, type_list<>, type_list<>>, type_list<>>); -static_assert(std::is_same_v, type_list<>, type_list<>>, type_list>); -static_assert(std::is_same_v, type_list, type_list<>>, type_list>); -static_assert(std::is_same_v, type_list<>, type_list>, type_list>); -static_assert(std::is_same_v, type_list, type_list>, type_list>); -static_assert(std::is_same_v, type_list, type_list>, type_list>); +static_assert(is_same_v>, type_list<>>); +static_assert(is_same_v, type_list<>>, type_list<>>); +static_assert(is_same_v, type_list<>, type_list<>>, type_list<>>); +static_assert(is_same_v, type_list<>, type_list<>>, type_list>); +static_assert(is_same_v, type_list, type_list<>>, type_list>); +static_assert(is_same_v, type_list<>, type_list>, type_list>); +static_assert(is_same_v, type_list, type_list>, type_list>); +static_assert(is_same_v, type_list, type_list>, type_list>); // type_list_split -static_assert(std::is_same_v, 0>::first_list, type_list<>>); -static_assert(std::is_same_v, 0>::second_list, type_list>); +static_assert(is_same_v, 0>::first_list, type_list<>>); +static_assert(is_same_v, 0>::second_list, type_list>); -static_assert(std::is_same_v, 1>::first_list, type_list>); -static_assert(std::is_same_v, 1>::second_list, type_list<>>); +static_assert(is_same_v, 1>::first_list, type_list>); +static_assert(is_same_v, 1>::second_list, type_list<>>); -static_assert(std::is_same_v, 0>::first_list, type_list<>>); -static_assert(std::is_same_v, 0>::second_list, type_list>); +static_assert(is_same_v, 0>::first_list, type_list<>>); +static_assert(is_same_v, 0>::second_list, type_list>); -static_assert(std::is_same_v, 1>::first_list, type_list>); -static_assert(std::is_same_v, 1>::second_list, type_list>); +static_assert(is_same_v, 1>::first_list, type_list>); +static_assert(is_same_v, 1>::second_list, type_list>); -static_assert(std::is_same_v, 2>::first_list, type_list>); -static_assert(std::is_same_v, 2>::second_list, type_list<>>); +static_assert(is_same_v, 2>::first_list, type_list>); +static_assert(is_same_v, 2>::second_list, type_list<>>); -static_assert(std::is_same_v, 1>::first_list, type_list>); -static_assert(std::is_same_v, 1>::second_list, type_list>); +static_assert(is_same_v, 1>::first_list, type_list>); +static_assert(is_same_v, 1>::second_list, type_list>); -static_assert(std::is_same_v, 2>::first_list, type_list>); -static_assert(std::is_same_v, 2>::second_list, type_list>); +static_assert(is_same_v, 2>::first_list, type_list>); +static_assert(is_same_v, 2>::second_list, type_list>); // type_list_split_half -static_assert(std::is_same_v>::first_list, type_list>); -static_assert(std::is_same_v>::second_list, type_list<>>); +static_assert(is_same_v>::first_list, type_list>); +static_assert(is_same_v>::second_list, type_list<>>); -static_assert(std::is_same_v>::first_list, type_list>); -static_assert(std::is_same_v>::second_list, type_list>); +static_assert(is_same_v>::first_list, type_list>); +static_assert(is_same_v>::second_list, type_list>); -static_assert(std::is_same_v>::first_list, type_list>); -static_assert(std::is_same_v>::second_list, type_list>); +static_assert(is_same_v>::first_list, type_list>); +static_assert(is_same_v>::second_list, type_list>); static_assert( - std::is_same_v>::first_list, type_list>); + is_same_v>::first_list, type_list>); static_assert( - std::is_same_v>::second_list, type_list>); + is_same_v>::second_list, type_list>); // type_list_merge_sorted struct u0 : named_unit {}; @@ -98,9 +98,9 @@ struct d0 : base_dimension<"d0", u0> {}; struct u1 : named_unit {}; struct d1 : base_dimension<"d1", u1> {}; -static_assert(std::is_same_v>, type_list>, exp_less>, +static_assert(is_same_v>, type_list>, exp_less>, type_list, units::exp>>); -static_assert(std::is_same_v>, type_list>, exp_less>, +static_assert(is_same_v>, type_list>, exp_less>, type_list, units::exp>>); // type_list_sort @@ -108,10 +108,10 @@ static_assert(std::is_same_v> template using exp_sort = type_list_sort; -static_assert(std::is_same_v>>, exp_list>>); +static_assert(is_same_v>>, exp_list>>); static_assert( - std::is_same_v, units::exp>>, exp_list, units::exp>>); + is_same_v, units::exp>>, exp_list, units::exp>>); static_assert( - std::is_same_v, units::exp>>, exp_list, units::exp>>); + is_same_v, units::exp>>, exp_list, units::exp>>); } // namespace diff --git a/test/unit_test/static/unit_test.cpp b/test/unit_test/static/unit_test.cpp index 089283b5..a48a1e86 100644 --- a/test/unit_test/static/unit_test.cpp +++ b/test/unit_test/static/unit_test.cpp @@ -46,11 +46,11 @@ struct metre_per_second : unit {}; struct dim_speed : derived_dimension, units::exp> {}; struct kilometre_per_hour : deduced_unit {}; -static_assert(std::is_same_v>, metre>); -static_assert(std::is_same_v>, centimetre>); -static_assert(std::is_same_v>, yard>); -static_assert(std::is_same_v>, foot>); -static_assert(std::is_same_v>, kilometre_per_hour>); +static_assert(is_same_v>, metre>); +static_assert(is_same_v>, centimetre>); +static_assert(is_same_v>, yard>); +static_assert(is_same_v>, foot>); +static_assert(is_same_v>, kilometre_per_hour>); static_assert(centimetre::symbol == "cm"); static_assert(kilometre::symbol == "km");