refactor: nodiscard to type level

This commit is contained in:
Johel Ernesto Guerrero Peña
2020-05-31 15:07:27 -04:00
committed by Mateusz Pusz
parent ef316a3dba
commit d6d17c6c6e

View File

@@ -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);