sal/inc/rtl/stringutils.hxx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)
New commits: commit dbf238ba0a76c64643a28fc3fd9d0d3ede848dd7 Author: LuboÅ¡ LuÅák <l.lu...@suse.cz> Date: Thu Mar 29 07:39:03 2012 +0200 (const) char[] is a plain C string type too and it's size is not known, so it cannot be taken as a string literal diff --git a/sal/inc/rtl/stringutils.hxx b/sal/inc/rtl/stringutils.hxx index 3bf72c5..19c1bf4 100644 --- a/sal/inc/rtl/stringutils.hxx +++ b/sal/inc/rtl/stringutils.hxx @@ -50,7 +50,8 @@ namespace internal { /* These templates use SFINAE (Substitution failure is not an error) to help distinguish the various -plain C string types: char*, const char*, char[N] and const char[N]. There are 2 cases: +plain C string types: char*, const char*, char[N], const char[N], char[] and const char[]. +There are 2 cases: 1) Only string literal (i.e. const char[N]) is wanted, not any of the others. In this case it is necessary to distinguish between const char[N] and char[N], as the latter would be automatically converted to the const variant, which is not wanted (not a string literal @@ -90,6 +91,16 @@ struct NonConstCharArrayDetector< char[ N ], T > { typedef T Type; }; +template< typename T > +struct NonConstCharArrayDetector< char[], T > +{ + typedef T Type; +}; +template< typename T > +struct NonConstCharArrayDetector< const char[], T > +{ + typedef T Type; +}; template< typename T1, typename T2 > struct ConstCharArrayDetector
_______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits