From 56471d80f216973a2c75c6b846dbe0c62ac67932 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Thu, 7 Nov 2013 13:41:24 +0100 Subject: [PATCH] Implement operator+ for Value and String. Refs #2710 --- lib/base/value.cpp | 10 ++++++++++ lib/base/value.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/lib/base/value.cpp b/lib/base/value.cpp index 23668959d14..c495192b29b 100644 --- a/lib/base/value.cpp +++ b/lib/base/value.cpp @@ -251,6 +251,16 @@ Value icinga::operator+(const char *lhs, const Value& rhs) return lhs + static_cast(rhs); } +Value icinga::operator+(const Value& lhs, const String& rhs) +{ + return static_cast(lhs) + rhs; +} + +Value icinga::operator+(const String& lhs, const Value& rhs) +{ + return lhs + static_cast(rhs); +} + std::ostream& icinga::operator<<(std::ostream& stream, const Value& value) { stream << static_cast(value); diff --git a/lib/base/value.h b/lib/base/value.h index 1abf97936ef..a60900cc259 100644 --- a/lib/base/value.h +++ b/lib/base/value.h @@ -117,6 +117,9 @@ static Value Empty; I2_BASE_API Value operator+(const Value& lhs, const char *rhs); I2_BASE_API Value operator+(const char *lhs, const Value& rhs); +I2_BASE_API Value operator+(const Value& lhs, const String& rhs); +I2_BASE_API Value operator+(const String& lhs, const Value& rhs); + I2_BASE_API std::ostream& operator<<(std::ostream& stream, const Value& value); I2_BASE_API std::istream& operator>>(std::istream& stream, Value& value);