Kaydet (Commit) c399004b authored tarafından Stephan Bergmann's avatar Stephan Bergmann

OUString construction from OUStringLiteral1 must not be overruled by...

...Except[Const]CharArrayDetector, under RTL_STRING_UNITTEST

Change-Id: Ib185fb8406c4afcff1c854a2b74dae02a0ee2b3f
Reviewed-on: https://gerrit.libreoffice.org/28444Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarStephan Bergmann <sbergman@redhat.com>
üst f37fd4e2
......@@ -200,6 +200,18 @@ template< int N >
struct ExceptConstCharArrayDetector< const char[ N ] >
{
};
#if defined LIBO_INTERNAL_ONLY
template<char C> struct ExceptConstCharArrayDetector<
#if defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ <= 8 \
&& !defined __clang__
OUStringLiteral1_<C> const
#else
OUStringLiteral1<C>
#endif
>
{};
#endif
// this one is used to rule out only const char[N]
// (const will be brought in by 'const T&' in the function call)
// msvc needs const char[N] here (not sure whether gcc or msvc
......@@ -217,9 +229,8 @@ template< int N >
struct ExceptCharArrayDetector< const char[ N ] >
{
};
#if defined LIBO_INTERNAL_ONLY && defined _MSC_VER && _MSC_VER <= 1900
// Visual Studio 2015
template<char C> struct ExceptCharArrayDetector<OUStringLiteral1<C>> {};
#if defined LIBO_INTERNAL_ONLY
template<char C> struct ExceptCharArrayDetector<OUStringLiteral1_<C>> {};
#endif
template< typename T1, typename T2 = void >
......
......@@ -228,8 +228,7 @@ void test::oustring::StringLiterals::checkOUStringLiteral1()
// auto l5 = rtlunittest::OUStringLiteral1<sal_Unicode(0x100)>();
rtl::OUString s1;
s1 = rtlunittest::OUStringLiteral1<'A'>();
rtl::OUString s1{rtlunittest::OUStringLiteral1<'A'>()};
CPPUNIT_ASSERT_EQUAL(sal_Int32(1), s1.getLength());
CPPUNIT_ASSERT_EQUAL(sal_Unicode('A'), s1[0]);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment