diff --git a/src/core/include/units/concepts.h b/src/core/include/units/concepts.h index 8a7d8e2e..afdfeb4f 100644 --- a/src/core/include/units/concepts.h +++ b/src/core/include/units/concepts.h @@ -110,9 +110,17 @@ inline constexpr bool is_quantity> = true; * Satisfied by all quantities with a dimension being the instantiation derived from * the provided dimension type. */ -template -concept quantity_of = Quantity && ((Dimension> && Q::dimension == V) || - (Reference> && Q::dimension == V.dimension && - Q::unit == V.unit)); +template +concept quantity_of = Quantity && Dimension> && (Q::dimension == D); + +/** + * @brief A concept matching all quantities with provided dimension or reference + * + * Satisfied by all quantities with a dimension being the instantiation derived from + * the provided dimension type. + */ +template +concept quantity_equivalent_to = Quantity && Dimension> && + (interconvertible(Q::dimension, D)); } // namespace units