diff options
author | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2013-10-22 05:17:33 -0700 |
---|---|---|
committer | Emiel Bruijntjes <emiel.bruijntjes@copernica.com> | 2013-10-22 05:17:33 -0700 |
commit | f16847ab29d474e2b20d7f8c9f3a0f229b54c850 (patch) | |
tree | 1b66e989cb28ce42070abcf739157170b1f780ff /src | |
parent | 0914ea9fc9795cc997f8fdb22a8c678ad0ff40ba (diff) |
{auto} support for modulus operator
Diffstat (limited to 'src')
-rw-r--r-- | src/value.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/value.cpp b/src/value.cpp index b1ec3c8..5e6d9b0 100644 --- a/src/value.cpp +++ b/src/value.cpp @@ -569,6 +569,22 @@ Value &Value::operator/=(const char *value) { return Arithmetic<std::div Value &Value::operator/=(double value) { return Arithmetic<std::divides>(this).assign(value); } /** + * Divide the object with a certain value and get the rest + * Note that this does not use the Arithmetic object, because no conversion between floats is necessary + * @param value + * @return Value + */ +Value &Value::operator%=(const Value &value) { return operator=(numericValue() % value.numericValue()); } +Value &Value::operator%=(int16_t value) { return operator=(numericValue() % value); } +Value &Value::operator%=(int32_t value) { return operator=(numericValue() % value); } +Value &Value::operator%=(int64_t value) { return operator=(numericValue() % value); } +Value &Value::operator%=(bool value) { return operator=(numericValue() % value); } +Value &Value::operator%=(char value) { return operator=(numericValue() % value); } +Value &Value::operator%=(const std::string &value) { return operator=(numericValue() % atoi(value.c_str())); } +Value &Value::operator%=(const char *value) { return operator=(numericValue() % atoi(value)); } +Value &Value::operator%=(double value) { return operator=(numericValue() % (int)value); } + +/** * Assignment operator * @param value * @return Value @@ -628,6 +644,20 @@ Value Value::operator/(const std::string &value) { return Arithmetic<std::div Value Value::operator/(const char *value) { return Arithmetic<std::divides>(this).apply(value); } Value Value::operator/(double value) { return Arithmetic<std::divides>(this).apply(value); } +/** + * Modulus operator + * @param value + * @return Value + */ +Value Value::operator%(const Value &value) { return Value(numericValue() % value.numericValue()); } +Value Value::operator%(int16_t value) { return Value(numericValue() % value); } +Value Value::operator%(int32_t value) { return Value(numericValue() % value); } +Value Value::operator%(int64_t value) { return Value(numericValue() % value); } +Value Value::operator%(bool value) { return Value(numericValue() % value); } +Value Value::operator%(char value) { return Value(numericValue() % value); } +Value Value::operator%(const std::string &value) { return Value(numericValue() % atoi(value.c_str())); } +Value Value::operator%(const char *value) { return Value(numericValue() % atoi(value)); } +Value Value::operator%(double value) { return Value(numericValue() % (int)value); } /** * The type of object |