diff --git a/src/include/units/math.h b/src/include/units/math.h index 86bcd773..f70ac038 100644 --- a/src/include/units/math.h +++ b/src/include/units/math.h @@ -40,7 +40,7 @@ namespace units { */ template requires(N != 0) -inline Quantity auto pow(const Q& q) noexcept +[[nodiscard]] inline Quantity auto pow(const Q& q) noexcept requires requires { std::pow(q.count(), N); } { using dim = dimension_pow; @@ -56,7 +56,7 @@ inline Quantity auto pow(const Q& q) noexcept */ template requires(N == 0) -inline TYPENAME Q::rep pow(const Q&) noexcept +[[nodiscard]] inline TYPENAME Q::rep pow(const Q&) noexcept { return 1; } @@ -70,7 +70,7 @@ inline TYPENAME Q::rep pow(const Q&) noexcept * @return Quantity The result of computation */ template -inline Quantity auto sqrt(const Q& q) noexcept +[[nodiscard]] inline Quantity auto sqrt(const Q& q) noexcept requires requires { std::sqrt(q.count()); } { using dim = dimension_sqrt; @@ -86,7 +86,7 @@ inline Quantity auto sqrt(const Q& q) noexcept * @return Quantity The value of the same quantity type */ template -inline quantity exp(const quantity& q) +[[nodiscard]] inline quantity exp(const quantity& q) { using coherent_unit = dimension_unit; return quantity_cast(quantity(std::exp(quantity_cast(q).count()))); @@ -99,7 +99,7 @@ inline quantity exp(const quantity& q) * @return Quantity The absolute value of a provided quantity */ template -inline Quantity auto abs(const Q& q) noexcept +[[nodiscard]] inline Quantity auto abs(const Q& q) noexcept requires requires { std::abs(q.count()); } { return Q(std::abs(q.count())); @@ -115,7 +115,7 @@ inline Quantity auto abs(const Q& q) noexcept */ template requires requires { std::numeric_limits::epsilon(); } -constexpr Quantity auto epsilon() noexcept +[[nodiscard]] constexpr Quantity auto epsilon() noexcept { return Q(std::numeric_limits::epsilon()); }