diff --git a/src/include/units/quantity.h b/src/include/units/quantity.h index 57a51525..303c79dc 100644 --- a/src/include/units/quantity.h +++ b/src/include/units/quantity.h @@ -147,14 +147,14 @@ namespace units { quantity& operator=(const quantity& other) = default; - constexpr rep count() const noexcept { return value_; } + [[nodiscard]] constexpr rep count() const noexcept { return value_; } - static constexpr quantity zero() noexcept { return quantity(quantity_values::zero()); } - static constexpr quantity min() noexcept { return quantity(quantity_values::min()); } - static constexpr quantity max() noexcept { return quantity(quantity_values::max()); } + [[nodiscard]] static constexpr quantity zero() noexcept { return quantity(quantity_values::zero()); } + [[nodiscard]] static constexpr quantity min() noexcept { return quantity(quantity_values::min()); } + [[nodiscard]] static constexpr quantity max() noexcept { return quantity(quantity_values::max()); } - constexpr std::common_type_t operator+() const { return quantity(*this); } - constexpr std::common_type_t operator-() const { return quantity(-count()); } + [[nodiscard]] constexpr std::common_type_t operator+() const { return quantity(*this); } + [[nodiscard]] constexpr std::common_type_t operator-() const { return quantity(-count()); } constexpr quantity& operator++() { @@ -209,7 +209,7 @@ namespace units { // clang-format off template - std::common_type_t, quantity> + [[nodiscard]] std::common_type_t, quantity> constexpr operator+(const quantity& lhs, const quantity& rhs) { @@ -218,7 +218,7 @@ namespace units { } template - std::common_type_t, quantity> + [[nodiscard]] std::common_type_t, quantity> constexpr operator-(const quantity& lhs, const quantity& rhs) { @@ -227,7 +227,7 @@ namespace units { } template - quantity> + [[nodiscard]] quantity> constexpr operator*(const quantity& q, const Rep2& v) { @@ -236,7 +236,7 @@ namespace units { } template - quantity> + [[nodiscard]] quantity> constexpr operator*(const Rep1& v, const quantity& q) { @@ -245,7 +245,9 @@ namespace units { template requires treat_as_floating_point> || std::ratio_multiply::den == 1 - quantity, upcasting_traits_t, std::ratio_multiply>>, std::common_type_t> + [[nodiscard]] quantity, upcasting_traits_t, + std::ratio_multiply>>, + std::common_type_t> constexpr operator*(const quantity& lhs, const quantity& rhs) { @@ -255,7 +257,7 @@ namespace units { } template - quantity, upcasting_traits_t, std::ratio>>, std::common_type_t> + [[nodiscard]] quantity, upcasting_traits_t, std::ratio>>, std::common_type_t> constexpr operator/(const Rep1& v, const quantity& q) { @@ -266,7 +268,7 @@ namespace units { } template - quantity> + [[nodiscard]] quantity> constexpr operator/(const quantity& q, const Rep2& v) { @@ -275,7 +277,7 @@ namespace units { } template - std::common_type_t + [[nodiscard]] std::common_type_t constexpr operator/(const quantity& lhs, const quantity& rhs) { @@ -285,7 +287,7 @@ namespace units { template requires treat_as_floating_point> || std::ratio_divide::den == 1 - quantity, upcasting_traits_t, std::ratio_divide>>, std::common_type_t> + [[nodiscard]] quantity, upcasting_traits_t, std::ratio_divide>>, std::common_type_t> constexpr operator/(const quantity& lhs, const quantity& rhs) { @@ -295,7 +297,7 @@ namespace units { } template - quantity> + [[nodiscard]] quantity> constexpr operator%(const quantity& q, const Rep2& v) { @@ -304,7 +306,7 @@ namespace units { } template - std::common_type_t, quantity> + [[nodiscard]] std::common_type_t, quantity> constexpr operator%(const quantity& lhs, const quantity& rhs) { @@ -315,39 +317,39 @@ namespace units { // clang-format on template - constexpr bool operator==(const quantity& lhs, const quantity& rhs) + [[nodiscard]] constexpr bool operator==(const quantity& lhs, const quantity& rhs) { using ct = std::common_type_t, quantity>; return ct(lhs).count() == ct(rhs).count(); } template - constexpr bool operator!=(const quantity& lhs, const quantity& rhs) + [[nodiscard]] constexpr bool operator!=(const quantity& lhs, const quantity& rhs) { return !(lhs == rhs); } template - constexpr bool operator<(const quantity& lhs, const quantity& rhs) + [[nodiscard]] constexpr bool operator<(const quantity& lhs, const quantity& rhs) { using ct = std::common_type_t, quantity>; return ct(lhs).count() < ct(rhs).count(); } template - constexpr bool operator<=(const quantity& lhs, const quantity& rhs) + [[nodiscard]] constexpr bool operator<=(const quantity& lhs, const quantity& rhs) { return !(rhs < lhs); } template - constexpr bool operator>(const quantity& lhs, const quantity& rhs) + [[nodiscard]] constexpr bool operator>(const quantity& lhs, const quantity& rhs) { return rhs < lhs; } template - constexpr bool operator>=(const quantity& lhs, const quantity& rhs) + [[nodiscard]] constexpr bool operator>=(const quantity& lhs, const quantity& rhs) { return !(lhs < rhs); }