mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-05 05:04:27 +02:00
refactor: nodiscard to type level
This commit is contained in:
committed by
Mateusz Pusz
parent
ef316a3dba
commit
d6d17c6c6e
@@ -38,7 +38,7 @@ namespace units {
|
||||
* @tparam Rep a type to be used to represent values of a quantity point
|
||||
*/
|
||||
template<Dimension D, UnitOf<D> U, Scalar Rep = double>
|
||||
class quantity_point {
|
||||
class [[nodiscard]] quantity_point {
|
||||
public:
|
||||
using quantity_type = quantity<D, U, Rep>;
|
||||
using dimension = typename quantity_type::dimension;
|
||||
@@ -67,7 +67,7 @@ public:
|
||||
[[nodiscard]] constexpr quantity_type relative() const noexcept { return q_; }
|
||||
|
||||
template<typename Q = quantity_type>
|
||||
[[nodiscard]] static constexpr quantity_point min() noexcept
|
||||
static constexpr quantity_point min() noexcept
|
||||
requires requires { Q::min(); }
|
||||
// requires requires { quantity_type::min(); } // TODO gated by gcc-9 (fixed in gcc-10)
|
||||
{
|
||||
@@ -75,7 +75,7 @@ public:
|
||||
}
|
||||
|
||||
template<typename Q = quantity_type>
|
||||
[[nodiscard]] static constexpr quantity_point max() noexcept
|
||||
static constexpr quantity_point max() noexcept
|
||||
requires requires { Q::max(); }
|
||||
// requires requires { quantity_type::max(); } // TODO gated by gcc-9 (fixed in gcc-10)
|
||||
{
|
||||
@@ -202,19 +202,19 @@ public:
|
||||
template<typename D, typename U, typename Rep>
|
||||
quantity_point(quantity<D, U, Rep>) -> quantity_point<D, U, Rep>;
|
||||
|
||||
[[nodiscard]] constexpr QuantityPoint AUTO operator+(const QuantityPoint AUTO& lhs, const Quantity AUTO& rhs)
|
||||
constexpr QuantityPoint AUTO operator+(const QuantityPoint AUTO& lhs, const Quantity AUTO& rhs)
|
||||
requires requires { lhs.relative() + rhs; }
|
||||
{
|
||||
return quantity_point(lhs.relative() + rhs);
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr QuantityPoint AUTO operator+(const Quantity AUTO& lhs, const QuantityPoint AUTO& rhs)
|
||||
constexpr QuantityPoint AUTO operator+(const Quantity AUTO& lhs, const QuantityPoint AUTO& rhs)
|
||||
requires requires { rhs + lhs; }
|
||||
{
|
||||
return rhs + lhs;
|
||||
}
|
||||
|
||||
[[nodiscard]] constexpr QuantityPoint AUTO operator-(const QuantityPoint AUTO& lhs, const Quantity AUTO& rhs)
|
||||
constexpr QuantityPoint AUTO operator-(const QuantityPoint AUTO& lhs, const Quantity AUTO& rhs)
|
||||
requires requires { lhs.relative() - rhs; }
|
||||
{
|
||||
return quantity_point(lhs.relative() - rhs);
|
||||
|
Reference in New Issue
Block a user