diff --git a/sal/inc/rtl/strbuf.hxx b/sal/inc/rtl/strbuf.hxx index 86f89efbf86f..2740c48b4c8b 100644 --- a/sal/inc/rtl/strbuf.hxx +++ b/sal/inc/rtl/strbuf.hxx @@ -862,6 +862,21 @@ public: return *this; } +#ifdef LIBO_INTERNAL_ONLY + // This is to complement the RTL_FAST_STRING operator+, which allows any combination of valid operands, + // even two buffers. It's intentional it returns OString, just like the operator+ would in the fast variant. +#ifndef RTL_FAST_STRING + /** + @internal + @since LibreOffice 4.1 + */ + friend OString operator+( const OStringBuffer& str1, const OStringBuffer& str2 ) SAL_THROW(()) + { + return OString( str1.pData ).concat( str2.pData ); + } +#endif +#endif + private: /** A pointer to the data structur which contains the data. diff --git a/sal/inc/rtl/ustrbuf.hxx b/sal/inc/rtl/ustrbuf.hxx index 3814a6f5b96c..d48245beeeb4 100644 --- a/sal/inc/rtl/ustrbuf.hxx +++ b/sal/inc/rtl/ustrbuf.hxx @@ -1298,6 +1298,21 @@ public: return stripStart(c) + stripEnd(c); } +#ifdef LIBO_INTERNAL_ONLY + // This is to complement the RTL_FAST_STRING operator+, which allows any combination of valid operands, + // even two buffers. It's intentional it returns OUString, just like the operator+ would in the fast variant. +#ifndef RTL_FAST_STRING + /** + @internal + @since LibreOffice 4.1 + */ + friend OUString operator+( const OUStringBuffer& str1, const OUStringBuffer& str2 ) SAL_THROW(()) + { + return OUString( str1.pData ).concat( str2.pData ); + } +#endif +#endif + private: /** A pointer to the data structur which contains the data.