From 13aab34b514a07f37cbc820b5367fb6b128df755 Mon Sep 17 00:00:00 2001 From: Mateusz Pusz Date: Sun, 30 Jun 2024 12:09:01 +0200 Subject: [PATCH] refactor: `[[nodiscard]]` and `consteval` set for some magnitude-related functions --- src/core/include/mp-units/framework/magnitude.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core/include/mp-units/framework/magnitude.h b/src/core/include/mp-units/framework/magnitude.h index fb547c62..dde4a87b 100644 --- a/src/core/include/mp-units/framework/magnitude.h +++ b/src/core/include/mp-units/framework/magnitude.h @@ -514,7 +514,7 @@ inline constexpr bool is_specialization_of_magnitude> = true; */ template requires(is_integral(magnitude{})) || treat_as_floating_point -constexpr T get_value(const magnitude&) +[[nodiscard]] consteval T get_value(const magnitude&) { // Force the expression to be evaluated in a constexpr context, to catch, e.g., overflow. constexpr T result = detail::checked_static_cast((detail::compute_base_power(Ms) * ... * T{1})); @@ -581,7 +581,7 @@ MP_UNITS_EXPORT_END namespace detail { -consteval bool less(MagnitudeSpec auto lhs, MagnitudeSpec auto rhs) +[[nodiscard]] consteval bool less(MagnitudeSpec auto lhs, MagnitudeSpec auto rhs) { using lhs_base_t = decltype(get_base_value(lhs)); using rhs_base_t = decltype(get_base_value(rhs)); @@ -599,9 +599,9 @@ consteval bool less(MagnitudeSpec auto lhs, MagnitudeSpec auto rhs) MP_UNITS_EXPORT_BEGIN // Base cases, for when either (or both) inputs are the identity. -constexpr Magnitude auto operator*(magnitude<>, magnitude<>) { return magnitude<>{}; } -constexpr Magnitude auto operator*(magnitude<>, Magnitude auto m) { return m; } -constexpr Magnitude auto operator*(Magnitude auto m, magnitude<>) { return m; } +[[nodiscard]] consteval Magnitude auto operator*(magnitude<>, magnitude<>) { return magnitude<>{}; } +[[nodiscard]] consteval Magnitude auto operator*(magnitude<>, Magnitude auto m) { return m; } +[[nodiscard]] consteval Magnitude auto operator*(Magnitude auto m, magnitude<>) { return m; } // Recursive case for the product of any two non-identity Magnitudes. template