forked from mpusz/mp-units
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
|
* @tparam Rep a type to be used to represent values of a quantity point
|
||||||
*/
|
*/
|
||||||
template<Dimension D, UnitOf<D> U, Scalar Rep = double>
|
template<Dimension D, UnitOf<D> U, Scalar Rep = double>
|
||||||
class quantity_point {
|
class [[nodiscard]] quantity_point {
|
||||||
public:
|
public:
|
||||||
using quantity_type = quantity<D, U, Rep>;
|
using quantity_type = quantity<D, U, Rep>;
|
||||||
using dimension = typename quantity_type::dimension;
|
using dimension = typename quantity_type::dimension;
|
||||||
@@ -67,7 +67,7 @@ public:
|
|||||||
[[nodiscard]] constexpr quantity_type relative() const noexcept { return q_; }
|
[[nodiscard]] constexpr quantity_type relative() const noexcept { return q_; }
|
||||||
|
|
||||||
template<typename Q = quantity_type>
|
template<typename Q = quantity_type>
|
||||||
[[nodiscard]] static constexpr quantity_point min() noexcept
|
static constexpr quantity_point min() noexcept
|
||||||
requires requires { Q::min(); }
|
requires requires { Q::min(); }
|
||||||
// requires requires { quantity_type::min(); } // TODO gated by gcc-9 (fixed in gcc-10)
|
// requires requires { quantity_type::min(); } // TODO gated by gcc-9 (fixed in gcc-10)
|
||||||
{
|
{
|
||||||
@@ -75,7 +75,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename Q = quantity_type>
|
template<typename Q = quantity_type>
|
||||||
[[nodiscard]] static constexpr quantity_point max() noexcept
|
static constexpr quantity_point max() noexcept
|
||||||
requires requires { Q::max(); }
|
requires requires { Q::max(); }
|
||||||
// requires requires { quantity_type::max(); } // TODO gated by gcc-9 (fixed in gcc-10)
|
// 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>
|
template<typename D, typename U, typename Rep>
|
||||||
quantity_point(quantity<D, U, Rep>) -> quantity_point<D, U, 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; }
|
requires requires { lhs.relative() + rhs; }
|
||||||
{
|
{
|
||||||
return quantity_point(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; }
|
requires requires { rhs + lhs; }
|
||||||
{
|
{
|
||||||
return 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; }
|
requires requires { lhs.relative() - rhs; }
|
||||||
{
|
{
|
||||||
return quantity_point(lhs.relative() - rhs);
|
return quantity_point(lhs.relative() - rhs);
|
||||||
|
Reference in New Issue
Block a user