refactor: SameDimension concept is not needed and can be inlined in DimensionOf

This commit is contained in:
Mateusz Pusz
2024-10-20 21:10:03 +02:00
parent 10030c540b
commit 035eb3acb4

View File

@@ -74,10 +74,6 @@ constexpr bool is_per_of_dims<per<Ts...>> =
template<typename T> template<typename T>
concept DerivedDimensionExpr = BaseDimension<T> || is_dimension_one<T>::value || IsPowerOfDim<T> || is_per_of_dims<T>; concept DerivedDimensionExpr = BaseDimension<T> || is_dimension_one<T>::value || IsPowerOfDim<T> || is_per_of_dims<T>;
template<auto D1, auto D2>
concept SameDimension =
Dimension<MP_UNITS_REMOVE_CONST(decltype(D1))> && Dimension<MP_UNITS_REMOVE_CONST(decltype(D2))> && (D1 == D2);
} // namespace detail } // namespace detail
/** /**
@@ -86,6 +82,6 @@ concept SameDimension =
* Satisfied when both argument satisfy a `Dimension` concept and when they compare equal. * Satisfied when both argument satisfy a `Dimension` concept and when they compare equal.
*/ */
MP_UNITS_EXPORT template<typename T, auto D> MP_UNITS_EXPORT template<typename T, auto D>
concept DimensionOf = Dimension<T> && Dimension<MP_UNITS_REMOVE_CONST(decltype(D))> && detail::SameDimension<T{}, D>; concept DimensionOf = Dimension<T> && Dimension<MP_UNITS_REMOVE_CONST(decltype(D))> && (T{} == D);
} // namespace mp_units } // namespace mp_units