summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Gayot <og@satcom1.com>2017-11-19 16:01:31 +0100
committerOlivier Gayot <og@satcom1.com>2017-11-19 16:21:05 +0100
commitc382010ae2e764bf7bbdf467c3d9a115a2113e50 (patch)
tree1faa7d743b50bfc8f98595ddb0a44035144971d8
parentd7d33b9779232972a1281bfddc1cf2626ec36050 (diff)
Added bool operator and ! operator
We can now check if a number evaluates to false or true by doing a conversion to bool or use the ! operator. Signed-off-by: Olivier Gayot <og@satcom1.com>
-rw-r--r--number.cpp11
-rw-r--r--number.h11
2 files changed, 22 insertions, 0 deletions
diff --git a/number.cpp b/number.cpp
index 12448de..94ef1ee 100644
--- a/number.cpp
+++ b/number.cpp
@@ -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 {{{ */
diff --git a/number.h b/number.h
index f68299d..c920ddc 100644
--- a/number.h
+++ b/number.h
@@ -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.