MSVC 2015 Error C2672: no matching overloaded function found

classic Classic list List threaded Threaded
3 messages Options
slacka slacka
Reply | Threaded
Open this post in threaded view
|

MSVC 2015 Error C2672: no matching overloaded function found

Within the last few days I started getting build errors with MSVC 2015. The last good build was about a week ago. Now, I'm getting the following error:


[build CXX] sal/qa/rtl/strings/test_oustring_stringliterals.cxx
[build CXX] sal/qa/rtl/strings/test_strings_toint.cxx
[build CXX] sal/qa/rtl/strings/test_strings_valuex.cxx
[build CXX] sal/qa/rtl/textenc/rtl_tencinfo.cxx
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(265): error C2672: 'rtlunittest::OUString::equalIgnoreAsciiCase': no matching overloaded function found
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(265): error C2893: Failed to specialize function template 'libreoffice_internal::ConstCharArrayDetector<T,bool>::TypeUtf16 rtlunittest::OUString::equalIgnoreAsciiCase(T &) const'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(265): note: With the following template arguments:
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(265): note: 'T=const char16_t [6]'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): error C2893: Failed to specialize function template 'libreoffice_internal::Enable<rtlunittest::OStringConcat<T1,T2>,rtlunittest::ToStringHelper<T>::allowOStringConcat&&rtlunittest::ToStringHelper<T2>::allowOStringConcat>::Type rtlunittest::operator +(const T1 &,const T2 &)'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: With the following template arguments:
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: 'T1=rtlunittest::OUString'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: 'T2=char16_t [4]'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): error C2784: 'libreoffice_internal::Enable<rtlunittest::OStringConcat<T,const char [N]>,rtlunittest::ToStringHelper<T>::allowOStringConcat>::Type rtlunittest::operator +(const T &,const char (&)[N])': could not deduce template argument for 'const char (&)[N]' from 'const char16_t [4]'
/core/include\rtl/stringconcat.hxx(231): note: see declaration of 'rtlunittest::operator +'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): error C2784: 'libreoffice_internal::Enable<rtlunittest::OStringConcat<const char [N],T>,rtlunittest::ToStringHelper<T>::allowOStringConcat>::Type rtlunittest::operator +(const char (&)[N],const T &)': could not deduce template argument for 'const char (&)[N]' from 'rtlunittest::OUString'
/core/include\rtl/stringconcat.hxx(239): note: see declaration of 'rtlunittest::operator +'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): error C2784: 'libreoffice_internal::Enable<rtlunittest::OStringConcat<T,char [N]>,rtlunittest::ToStringHelper<T>::allowOStringConcat>::Type rtlunittest::operator +(const T &,char (&)[N])': could not deduce template argument for 'char (&)[N]' from 'const char16_t [4]'
/core/include\rtl/stringconcat.hxx(247): note: see declaration of 'rtlunittest::operator +'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): error C2784: 'libreoffice_internal::Enable<rtlunittest::OStringConcat<char [N],T>,rtlunittest::ToStringHelper<T>::allowOStringConcat>::Type rtlunittest::operator +(char (&)[N],const T &)': could not deduce template argument for 'char (&)[N]' from 'rtlunittest::OUString'
/core/include\rtl/stringconcat.hxx(255): note: see declaration of 'rtlunittest::operator +'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): error C2893: Failed to specialize function template 'libreoffice_internal::Enable<rtlunittest::OUStringConcat<T1,T2>,rtlunittest::ToStringHelper<T>::allowOUStringConcat&&rtlunittest::ToStringHelper<T2>::allowOUStringConcat>::Type rtlunittest::operator +(const T1 &,const T2 &)'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: With the following template arguments:
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: 'T1=rtlunittest::OUString'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: 'T2=char16_t [4]'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): error C2893: Failed to specialize function template 'libreoffice_internal::Enable<rtlunittest::OUStringConcat<T1,T2>,rtlunittest::ToStringHelper<T>::allowOUStringConcat&&rtlunittest::ToStringHelper<T2>::allowOUStringConcat&&rtlunittest::libreoffice_internal::ConstCharArrayDetector<T1,void>::ok>::Type rtlunittest::operator +(T1 &,const T2 &)'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: With the following template arguments:
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: 'T1=rtlunittest::OUString'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: 'T2=char16_t [4]'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): error C2893: Failed to specialize function template 'libreoffice_internal::Enable<rtlunittest::OUStringConcat<T1,T2>,rtlunittest::ToStringHelper<T>::allowOUStringConcat&&rtlunittest::ToStringHelper<T2>::allowOUStringConcat&&rtlunittest::libreoffice_internal::ConstCharArrayDetector<T2,void>::ok>::Type rtlunittest::operator +(const T1 &,T2 &)'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: With the following template arguments:
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: 'T1=rtlunittest::OUString'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): note: 'T2=const char16_t [4]'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(312): error C2676: binary '+': 'rtlunittest::OUString' does not define this operator or a conversion to a type acceptable to the predefined operator
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): error C2893: Failed to specialize function template 'libreoffice_internal::Enable<rtlunittest::OStringConcat<T1,T2>,rtlunittest::ToStringHelper<T>::allowOStringConcat&&rtlunittest::ToStringHelper<T2>::allowOStringConcat>::Type rtlunittest::operator +(const T1 &,const T2 &)'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: With the following template arguments:
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: 'T1=char16_t [4]'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: 'T2=rtlunittest::OUString'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): error C2784: 'libreoffice_internal::Enable<rtlunittest::OStringConcat<T,const char [N]>,rtlunittest::ToStringHelper<T>::allowOStringConcat>::Type rtlunittest::operator +(const T &,const char (&)[N])': could not deduce template argument for 'const char (&)[N]' from 'rtlunittest::OUString'
/core/include\rtl/stringconcat.hxx(231): note: see declaration of 'rtlunittest::operator +'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): error C2784: 'libreoffice_internal::Enable<rtlunittest::OStringConcat<const char [N],T>,rtlunittest::ToStringHelper<T>::allowOStringConcat>::Type rtlunittest::operator +(const char (&)[N],const T &)': could not deduce template argument for 'const char (&)[N]' from 'const char16_t [4]'
/core/include\rtl/stringconcat.hxx(239): note: see declaration of 'rtlunittest::operator +'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): error C2784: 'libreoffice_internal::Enable<rtlunittest::OStringConcat<T,char [N]>,rtlunittest::ToStringHelper<T>::allowOStringConcat>::Type rtlunittest::operator +(const T &,char (&)[N])': could not deduce template argument for 'char (&)[N]' from 'rtlunittest::OUString'
/core/include\rtl/stringconcat.hxx(247): note: see declaration of 'rtlunittest::operator +'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): error C2784: 'libreoffice_internal::Enable<rtlunittest::OStringConcat<char [N],T>,rtlunittest::ToStringHelper<T>::allowOStringConcat>::Type rtlunittest::operator +(char (&)[N],const T &)': could not deduce template argument for 'char (&)[N]' from 'const char16_t [4]'
/core/include\rtl/stringconcat.hxx(255): note: see declaration of 'rtlunittest::operator +'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): error C2893: Failed to specialize function template 'libreoffice_internal::Enable<rtlunittest::OUStringConcat<T1,T2>,rtlunittest::ToStringHelper<T>::allowOUStringConcat&&rtlunittest::ToStringHelper<T2>::allowOUStringConcat>::Type rtlunittest::operator +(const T1 &,const T2 &)'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: With the following template arguments:
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: 'T1=char16_t [4]'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: 'T2=rtlunittest::OUString'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): error C2893: Failed to specialize function template 'libreoffice_internal::Enable<rtlunittest::OUStringConcat<T1,T2>,rtlunittest::ToStringHelper<T>::allowOUStringConcat&&rtlunittest::ToStringHelper<T2>::allowOUStringConcat&&rtlunittest::libreoffice_internal::ConstCharArrayDetector<T1,void>::ok>::Type rtlunittest::operator +(T1 &,const T2 &)'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: With the following template arguments:
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: 'T1=const char16_t [4]'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: 'T2=rtlunittest::OUString'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): error C2893: Failed to specialize function template 'libreoffice_internal::Enable<rtlunittest::OUStringConcat<T1,T2>,rtlunittest::ToStringHelper<T>::allowOUStringConcat&&rtlunittest::ToStringHelper<T2>::allowOUStringConcat&&rtlunittest::libreoffice_internal::ConstCharArrayDetector<T2,void>::ok>::Type rtlunittest::operator +(const T1 &,T2 &)'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: With the following template arguments:
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: 'T1=char16_t [4]'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): note: 'T2=rtlunittest::OUString'
/core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(314): error C2677: binary '+': no global operator found which takes type 'rtlunittest::OUString' (or there is no acceptable conversion)
/core/solenv/gbuild/LinkTarget.mk:189: recipe for target '/core/workdir/CxxObject/sal/qa/rtl/strings/test_oustring_stringliterals.o' failed
make[1]: *** [/core/workdir/CxxObject/sal/qa/rtl/strings/test_oustring_stringliterals.o] Error 2
make[1]: *** Waiting for unfinished jobs....
Makefile:264: recipe for target 'build' failed
make: *** [build] Error 2


Stephan, 
Your latest commits are the likely cause. 
https://cgit.freedesktop.org/libreoffice/core/log/sal/qa/rtl/strings/test_oustring_stringliterals.cxx


Could you please look into this?


-


_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
sberg sberg
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 Error C2672: no matching overloaded function found

On 09/02/2016 10:14 AM, Luke Benes wrote:
> /core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(265): error C2672: 'rtlunittest::OUString::equalIgnoreAsciiCase': no matching overloaded function found
> /core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(265): error C2893: Failed to specialize function template 'libreoffice_internal::ConstCharArrayDetector<T,bool>::TypeUtf16 rtlunittest::OUString::equalIgnoreAsciiCase(T &) const'
> /core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(265): note: With the following template arguments:
> /core/sal/qa/rtl/strings/test_oustring_stringliterals.cxx(265): note: 'T=const char16_t [6]'

ah, right,
<https://cgit.freedesktop.org/libreoffice/core/commit/?id=cc6693bebb3dbcb6bd608bd95b8109919e2bf365>
"Fix MSVC 2015 build" should fix that
_______________________________________________
LibreOffice mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/libreoffice
slacka slacka
Reply | Threaded
Open this post in threaded view
|

Re: MSVC 2015 Error C2672: no matching overloaded function found

Thanks Stephan! I verified that both the 32 and 64-bit builds are working again under MSVC 2015 after your commit.