From fc49d33c8d17dd6c5e3de6f23024d1d4fa98e920 Mon Sep 17 00:00:00 2001 From: Roman Donchenko Date: Thu, 21 Nov 2013 18:26:38 +0400 Subject: [PATCH] Gave cv::String appropriate += operators. Note that since String is a reference to an immutable string, this doesn't actually change the string; it just replaces *this with a reference to the concatenated string. --- modules/core/include/opencv2/core/cvstd.hpp | 26 +++++++++++++++++++ .../core/include/opencv2/core/cvstd.inl.hpp | 7 +++++ 2 files changed, 33 insertions(+) diff --git a/modules/core/include/opencv2/core/cvstd.hpp b/modules/core/include/opencv2/core/cvstd.hpp index afdeb2549a..f15e6a9351 100644 --- a/modules/core/include/opencv2/core/cvstd.hpp +++ b/modules/core/include/opencv2/core/cvstd.hpp @@ -364,6 +364,10 @@ public: String& operator=(const char* s); String& operator=(char c); + String& operator+=(const String& str); + String& operator+=(const char* s); + String& operator+=(char c); + size_t size() const; size_t length() const; @@ -416,6 +420,7 @@ public: String(const std::string& str); String(const std::string& str, size_t pos, size_t len = npos); String& operator=(const std::string& str); + String& operator+=(const std::string& str); operator std::string() const; friend String operator+ (const String& lhs, const std::string& rhs); @@ -544,6 +549,27 @@ String& String::operator=(char c) return *this; } +inline +String& String::operator+=(const String& str) +{ + *this = *this + str; + return *this; +} + +inline +String& String::operator+=(const char* s) +{ + *this = *this + s; + return *this; +} + +inline +String& String::operator+=(char c) +{ + *this = *this + c; + return *this; +} + inline size_t String::size() const { diff --git a/modules/core/include/opencv2/core/cvstd.inl.hpp b/modules/core/include/opencv2/core/cvstd.inl.hpp index 8642b7442e..ce18da30a3 100644 --- a/modules/core/include/opencv2/core/cvstd.inl.hpp +++ b/modules/core/include/opencv2/core/cvstd.inl.hpp @@ -103,6 +103,13 @@ String& String::operator = (const std::string& str) return *this; } +inline +String& String::operator += (const std::string& str) +{ + *this = *this + str; + return *this; +} + inline String::operator std::string() const {