summaryrefslogtreecommitdiff
path: root/include/hashmember.h
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2013-12-07 14:47:34 -0800
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2013-12-07 14:47:34 -0800
commiteea207153c62201cd1a0f2d5e4caf260919f5e9b (patch)
tree01285dbb58e350e813444de3f97b2aa21752fbfd /include/hashmember.h
parent80c8a16fb145f7ed4867d31fad3c22318a1ce708 (diff)
Implemented operator overloading for hash members
Diffstat (limited to 'include/hashmember.h')
-rw-r--r--include/hashmember.h151
1 files changed, 151 insertions, 0 deletions
diff --git a/include/hashmember.h b/include/hashmember.h
index e0964a5..9c04c46 100644
--- a/include/hashmember.h
+++ b/include/hashmember.h
@@ -166,6 +166,157 @@ public:
return _base.get(_index)[key].add(this);
}
+ /**
+ * Add a value to the object
+ * @param value
+ * @return HashMember
+ */
+ HashMember &operator+=(const Value &value) { return operator=(this->value() + value); }
+ HashMember &operator+=(int16_t value) { return operator=(this->value() + value); }
+ HashMember &operator+=(int32_t value) { return operator=(this->value() + value); }
+ HashMember &operator+=(int64_t value) { return operator=(this->value() + value); }
+ HashMember &operator+=(bool value) { return operator=(this->value() + value); }
+ HashMember &operator+=(char value) { return operator=(this->value() + value); }
+ HashMember &operator+=(const std::string &value) { return operator=(this->value() + value); }
+ HashMember &operator+=(const char *value) { return operator=(this->value() + value); }
+ HashMember &operator+=(double value) { return operator=(this->value() + value); }
+
+ /**
+ * Subtract a value from the object
+ * @param value
+ * @return HashMember
+ */
+ HashMember &operator-=(const Value &value) { return operator=(this->value() - value); }
+ HashMember &operator-=(int16_t value) { return operator=(this->value() - value); }
+ HashMember &operator-=(int32_t value) { return operator=(this->value() - value); }
+ HashMember &operator-=(int64_t value) { return operator=(this->value() - value); }
+ HashMember &operator-=(bool value) { return operator=(this->value() - value); }
+ HashMember &operator-=(char value) { return operator=(this->value() - value); }
+ HashMember &operator-=(const std::string &value) { return operator=(this->value() - value); }
+ HashMember &operator-=(const char *value) { return operator=(this->value() - value); }
+ HashMember &operator-=(double value) { return operator=(this->value() - value); }
+
+ /**
+ * Multiply the object with a certain value
+ * @param value
+ * @return HashMember
+ */
+ HashMember &operator*=(const Value &value) { return operator=(this->value() * value); }
+ HashMember &operator*=(int16_t value) { return operator=(this->value() * value); }
+ HashMember &operator*=(int32_t value) { return operator=(this->value() * value); }
+ HashMember &operator*=(int64_t value) { return operator=(this->value() * value); }
+ HashMember &operator*=(bool value) { return operator=(this->value() * value); }
+ HashMember &operator*=(char value) { return operator=(this->value() * value); }
+ HashMember &operator*=(const std::string &value) { return operator=(this->value() * value); }
+ HashMember &operator*=(const char *value) { return operator=(this->value() * value); }
+ HashMember &operator*=(double value) { return operator=(this->value() * value); }
+
+ /**
+ * Divide the object with a certain value
+ * @param value
+ * @return HashMember
+ */
+ HashMember &operator/=(const Value &value) { return operator=(this->value() / value); }
+ HashMember &operator/=(int16_t value) { return operator=(this->value() / value); }
+ HashMember &operator/=(int32_t value) { return operator=(this->value() / value); }
+ HashMember &operator/=(int64_t value) { return operator=(this->value() / value); }
+ HashMember &operator/=(bool value) { return operator=(this->value() / value); }
+ HashMember &operator/=(char value) { return operator=(this->value() / value); }
+ HashMember &operator/=(const std::string &value) { return operator=(this->value() / value); }
+ HashMember &operator/=(const char *value) { return operator=(this->value() / value); }
+ HashMember &operator/=(double value) { return operator=(this->value() / value); }
+
+ /**
+ * Divide the object with a certain value, and get the rest
+ * @param value
+ * @return HashMember
+ */
+ HashMember &operator%=(const Value &value) { return operator=(this->value() % value); }
+ HashMember &operator%=(int16_t value) { return operator=(this->value() % value); }
+ HashMember &operator%=(int32_t value) { return operator=(this->value() % value); }
+ HashMember &operator%=(int64_t value) { return operator=(this->value() % value); }
+ HashMember &operator%=(bool value) { return operator=(this->value() % value); }
+ HashMember &operator%=(char value) { return operator=(this->value() % value); }
+ HashMember &operator%=(const std::string &value) { return operator=(this->value() % value); }
+ HashMember &operator%=(const char *value) { return operator=(this->value() % value); }
+ HashMember &operator%=(double value) { return operator=(this->value() % value); }
+
+ /**
+ * Assignment operator
+ * @param value
+ * @return Value
+ */
+ Value operator+(const Value &value) { return this->value() + value; }
+ Value operator+(int16_t value) { return this->value() + value; }
+ Value operator+(int32_t value) { return this->value() + value; }
+ Value operator+(int64_t value) { return this->value() + value; }
+ Value operator+(bool value) { return this->value() + value; }
+ Value operator+(char value) { return this->value() + value; }
+ Value operator+(const std::string &value) { return this->value() + value; }
+ Value operator+(const char *value) { return this->value() + value; }
+ Value operator+(double value) { return this->value() + value; }
+
+ /**
+ * Subtraction operator
+ * @param value
+ * @return Value
+ */
+ Value operator-(const Value &value) { return this->value() - value; }
+ Value operator-(int16_t value) { return this->value() - value; }
+ Value operator-(int32_t value) { return this->value() - value; }
+ Value operator-(int64_t value) { return this->value() - value; }
+ Value operator-(bool value) { return this->value() - value; }
+ Value operator-(char value) { return this->value() - value; }
+ Value operator-(const std::string &value) { return this->value() - value; }
+ Value operator-(const char *value) { return this->value() - value; }
+ Value operator-(double value) { return this->value() - value; }
+
+ /**
+ * Multiplication operator
+ * @param value
+ * @return Value
+ */
+ Value operator*(const Value &value) { return this->value() * value; }
+ Value operator*(int16_t value) { return this->value() * value; }
+ Value operator*(int32_t value) { return this->value() * value; }
+ Value operator*(int64_t value) { return this->value() * value; }
+ Value operator*(bool value) { return this->value() * value; }
+ Value operator*(char value) { return this->value() * value; }
+ Value operator*(const std::string &value) { return this->value() * value; }
+ Value operator*(const char *value) { return this->value() * value; }
+ Value operator*(double value) { return this->value() * value; }
+
+ /**
+ * Division operator
+ * @param value
+ * @return Value
+ */
+ Value operator/(const Value &value) { return this->value() / value; }
+ Value operator/(int16_t value) { return this->value() / value; }
+ Value operator/(int32_t value) { return this->value() / value; }
+ Value operator/(int64_t value) { return this->value() / value; }
+ Value operator/(bool value) { return this->value() / value; }
+ Value operator/(char value) { return this->value() / value; }
+ Value operator/(const std::string &value) { return this->value() / value; }
+ Value operator/(const char *value) { return this->value() / value; }
+ Value operator/(double value) { return this->value() / value; }
+
+ /**
+ * Modulus operator
+ * @param value
+ * @return HashMember
+ */
+ Value operator%(const Value &value) { return this->value() % value; }
+ Value operator%(int16_t value) { return this->value() % value; }
+ Value operator%(int32_t value) { return this->value() % value; }
+ Value operator%(int64_t value) { return this->value() % value; }
+ Value operator%(bool value) { return this->value() % value; }
+ Value operator%(char value) { return this->value() % value; }
+ Value operator%(const std::string &value) { return this->value() % value; }
+ Value operator%(const char *value) { return this->value() % value; }
+ Value operator%(double value) { return this->value() % value; }
+
+
private:
/**
* Constructor