diff options
-rw-r--r-- | number.cpp | 11 | ||||
-rw-r--r-- | number.h | 11 |
2 files changed, 22 insertions, 0 deletions
@@ -70,6 +70,11 @@ number::to_uint32() const return (*this == 0) ? 0 : _operands.front(); } +number::operator bool() const +{ + return *this != 0; +} + /* }}} */ /* Operations {{{ */ @@ -226,6 +231,12 @@ number::operator!=(const number &n) const return _operands != n._operands; } +bool +number::operator!() const +{ + return !static_cast<bool>(*this); +} + /* }}} */ /* Assignment operators {{{ */ @@ -34,6 +34,12 @@ public: std::uint32_t to_uint32() const; /** + * \brief Return true if this number is not equal to 0. Otherwise, return + * false. + */ + explicit operator bool() const; + + /** * \brief Return the result of the addition of a number and this number. * * \param n The number to add to this number. @@ -105,6 +111,11 @@ public: bool operator!=(const number &n) const; /** + * \brief Tells whether this number evaluates to false. + */ + bool operator!() const; + + /** * \brief Add a number to this number. * * \param n Number to add to this number. |