From ef87e804ec80451ff1517482c1b70e7dccb961ce Mon Sep 17 00:00:00 2001 From: Luboš Luňák Date: Wed, 28 Mar 2012 22:58:11 +0200 Subject: string literal overloads for OStringBuffer --- sal/inc/rtl/strbuf.hxx | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) (limited to 'sal/inc/rtl/strbuf.hxx') diff --git a/sal/inc/rtl/strbuf.hxx b/sal/inc/rtl/strbuf.hxx index 62250f3faaa0..54428d340a10 100644 --- a/sal/inc/rtl/strbuf.hxx +++ b/sal/inc/rtl/strbuf.hxx @@ -373,11 +373,31 @@ public: @param str the characters to be appended. @return this string buffer. */ - OStringBuffer & append( const sal_Char * str ) + template< typename T > + typename internal::CharPtrDetector< T, OStringBuffer& >::Type append( const T& str ) { return append( str, rtl_str_getLength( str ) ); } + template< typename T > + typename internal::NonConstCharArrayDetector< T, OStringBuffer& >::Type append( T& str ) + { + return append( str, rtl_str_getLength( str ) ); + } + + /** + @overload + This function accepts an ASCII string literal as its argument. + @since LibreOffice 3.6 + */ + template< typename T > + typename internal::ConstCharArrayDetector< T, OStringBuffer& >::Type append( T& literal ) + { + RTL_STRING_CONST_FUNCTION + rtl_stringbuffer_insert( &pData, &nCapacity, getLength(), literal, internal::ConstCharArrayDetector< T, void >::size - 1 ); + return *this; + } + /** Appends the string representation of the char array argument to this string buffer. @@ -535,11 +555,31 @@ public: @param str a character array. @return this string buffer. */ - OStringBuffer & insert( sal_Int32 offset, const sal_Char * str ) + template< typename T > + typename internal::CharPtrDetector< T, OStringBuffer& >::Type insert( sal_Int32 offset, const T& str ) { return insert( offset, str, rtl_str_getLength( str ) ); } + template< typename T > + typename internal::NonConstCharArrayDetector< T, OStringBuffer& >::Type insert( sal_Int32 offset, T& str ) + { + return insert( offset, str, rtl_str_getLength( str ) ); + } + + /** + @overload + This function accepts an ASCII string literal as its argument. + @since LibreOffice 3.6 + */ + template< typename T > + typename internal::ConstCharArrayDetector< T, OStringBuffer& >::Type insert( sal_Int32 offset, T& literal ) + { + RTL_STRING_CONST_FUNCTION + rtl_stringbuffer_insert( &pData, &nCapacity, offset, literal, internal::ConstCharArrayDetector< T, void >::size - 1 ); + return *this; + } + /** Inserts the string representation of the char array argument into this string buffer. -- cgit v1.2.3