Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-27419

Compile errors on msvc2008 relating to usage of std::upper_bound

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.0.0 Beta 2
    • 5.0.0 Beta 2
    • GUI: Text handling
    • None
    • Windows XP msvc2008
    • 1fb3d849e426fafcd5af30ce8ee6a00a10891746

    Description

      Configured with:

      C:\Dev\qtbase\configure -debug -developer-build -open-source -confirm-license

      Most likely as a result of 8e3e34defd0e19d49be090046ba76decc2adb526 (where usages of qUpperBound were replaced with std::upper_bound) I get these compile errors with msvc2008 when running nmake:

      cl -c -FIqt_gui_pch.h -Yuqt_gui_pch.h -Fptmp\obj\debug_shared\QtGuid_pch.pch -nologo -Zm200 -Zc:wchar_t -Zi -MDd -W3 -w34100 -w34189 -GR -DUNICODE -DWIN32 -DQT_NO_USING_NAMESPACE -DQT_BUILD_GUI_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x040800 -D_USE_MATH_DEFINES -DQT_USE_BUNDLED_LIBPNG -DQT_DLL -DQT_CORE_LIB -DQT_NO_EXCEPTIONS -I"..\..\include" -I"..\..\include\QtGui" -I"..\..\include\QtGui\5.0.0" -I"..\..\include\QtGui\5.0.0\QtGui" -I"tmp" -I"C:\Dev\qtbase\src\gui\image" -I"C:\Dev\qtbase\src\3rdparty\libpng" -I"C:\Dev\qtbase\src\3rdparty\zlib" -I"C:\Dev\qtbase\src\3rdparty\harfbuzz\src" -I"C:\Dev\qtbase\src\3rdparty\zlib" -I"..\..\include\QtCore" -I"..\..\include\QtCore\5.0.0" -I"..\..\include\QtCore\5.0.0\QtCore" -I"tmp\moc\debug_shared" -I"." -I"..\..\mkspecs\win32-msvc2008" -Fotmp\obj\debug_shared\ @C:\DOCUME~1\Mitch!\LOCALS~1\Temp\nm2FF.tmp
      qtextengine.cpp
      c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xutility(315) : error C2664: 'bool `anonymous-namespace'::QScriptItemComparator::operator ()(int,const QScriptItem &)' : cannot convert parameter 1 from 'const QScriptItem' to 'int'
              No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
              c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\algorithm(2369) : see reference to function template instantiation 'bool std::_Debug_lt_pred<_Pr,_Ty,T>(_Pr,const _Ty1 &,const _Ty2 &,const wchar_t *,unsigned int)' being compiled
              with
              [
                  _Pr=`anonymous-namespace'::QScriptItemComparator,
                  _Ty=int,
                  T=QScriptItem,
                  _Ty1=int,
                  _Ty2=QScriptItem
              ]
              c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\algorithm(2383) : see reference to function template instantiation '_FwdIt std::_Upper_bound<const QScriptItem*,_Ty,std::iterator_traits<_Iter>::difference_type,_Pr>(_FwdIt,_FwdIt,const _Ty &,_Pr,_Diff *)' being compiled
              with
              [
                  _FwdIt=const QScriptItem *,
                  _Ty=int,
                  _Iter=const QScriptItem *,
                  _Pr=`anonymous-namespace'::QScriptItemComparator,
                  _Diff=std::iterator_traits<const QScriptItem *>::difference_type
              ]
              C:\Dev\qtbase\src\gui\text\qtextengine.cpp(2553) : see reference to function template instantiation '_FwdIt std::upper_bound<const QScriptItem*,int,`anonymous-namespace'::QScriptItemComparator>(_FwdIt,_FwdIt,const _Ty &,_Pr)' being compiled
              with
              [
                  _FwdIt=const QScriptItem *,
                  _Ty=int,
                  _Pr=`anonymous-namespace'::QScriptItemComparator
              ]
      qtextdocumentlayout.cpp
      c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xutility(263) : error C2678: binary '<' : no operator found which takes a left-hand operand of type 'const QFixed' (or there is no acceptable conversion)
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qchar.h(390): could be 'bool operator <(QChar,QChar)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qbytearray.h(538): or       'bool operator <(const QByteArray &,const QByteArray &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qbytearray.h(540): or       'bool operator <(const QByteArray &,const char *)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qbytearray.h(542): or       'bool operator <(const char *,const QByteArray &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(565): or       'bool operator <(const QString &,const QString &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(625): or       'bool operator <(const char *,const QString &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(632): or       'bool operator <(const char *,const QStringRef &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(975): or       'bool operator <(QLatin1String,QLatin1String)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(1032): or       'bool operator <(const char *,QLatin1String)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(1304): or       'bool operator <(const QStringRef &,const QStringRef &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtgui\5.0.0\qtgui\private\../../../../../../qtbase/src/gui/painting/qfixed_p.h(181): or       'bool operator <(const QFixed &,int)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtgui\5.0.0\qtgui\private\../../../../../../qtbase/src/gui/painting/qfixed_p.h(182): or       'bool operator <(int,const QFixed &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\5.0.0\qtcore\private\../../../../../../qtbase/src/corelib/thread/qthread_p.h(89): or       'bool operator <(const QPostEvent &,const QPostEvent &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qelapsedtimer.h(83): or       'bool operator <(const QElapsedTimer &,const QElapsedTimer &) throw()' [found using argument-dependent lookup]
              C:\Dev\qtbase\src\gui\text\qtextdocumentlayout.cpp(394): or       'bool operator <(const QCheckPoint &,QFixed)' [found using argument-dependent lookup]
              C:\Dev\qtbase\src\gui\text\qtextdocumentlayout.cpp(399): or       'bool operator <(const QCheckPoint &,int)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtgui\5.0.0\qtgui\private\../../../../../../qtbase/src/gui/painting/qfixed_p.h(102): or       'bool QFixed::operator <(const QFixed &) const'
              while trying to match the argument list '(const QFixed, const QCheckPoint)'
              c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\algorithm(2262) : see reference to function template instantiation 'bool std::_Debug_lt<T,_Ty>(const _Ty1 &,const _Ty2 &,const wchar_t *,unsigned int)' being compiled
              with
              [
                  T=QCheckPoint,
                  _Ty=QFixed,
                  _Ty1=QCheckPoint,
                  _Ty2=QFixed
              ]
              c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\algorithm(2274) : see reference to function template instantiation '_FwdIt std::_Lower_bound<const QCheckPoint*,_Ty,std::iterator_traits<_Iter>::difference_type>(_FwdIt,_FwdIt,const _Ty &,_Diff *)' being compiled
              with
              [
                  _FwdIt=const QCheckPoint *,
                  _Ty=QFixed,
                  _Iter=const QCheckPoint *,
                  _Diff=std::iterator_traits<const QCheckPoint *>::difference_type
              ]
              C:\Dev\qtbase\src\gui\text\qtextdocumentlayout.cpp(539) : see reference to function template instantiation '_FwdIt std::lower_bound<const QCheckPoint*,QFixed>(_FwdIt,_FwdIt,const _Ty &)' being compiled
              with
              [
                  _FwdIt=const QCheckPoint *,
                  _Ty=QFixed
              ]
      c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xutility(285) : error C2679: binary '<' : no operator found which takes a right-hand operand of type 'QCheckPoint' (or there is no acceptable conversion)
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qchar.h(390): could be 'bool operator <(QChar,QChar)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qbytearray.h(538): or       'bool operator <(const QByteArray &,const QByteArray &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qbytearray.h(540): or       'bool operator <(const QByteArray &,const char *)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qbytearray.h(542): or       'bool operator <(const char *,const QByteArray &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(565): or       'bool operator <(const QString &,const QString &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(625): or       'bool operator <(const char *,const QString &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(632): or       'bool operator <(const char *,const QStringRef &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(975): or       'bool operator <(QLatin1String,QLatin1String)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(1032): or       'bool operator <(const char *,QLatin1String)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qstring.h(1304): or       'bool operator <(const QStringRef &,const QStringRef &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtgui\5.0.0\qtgui\private\../../../../../../qtbase/src/gui/painting/qfixed_p.h(181): or       'bool operator <(const QFixed &,int)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtgui\5.0.0\qtgui\private\../../../../../../qtbase/src/gui/painting/qfixed_p.h(182): or       'bool operator <(int,const QFixed &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\5.0.0\qtcore\private\../../../../../../qtbase/src/corelib/thread/qthread_p.h(89): or       'bool operator <(const QPostEvent &,const QPostEvent &)' [found using argument-dependent lookup]
              c:\dev\qtbase-d\include\qtcore\../../../qtbase/src/corelib/tools/qelapsedtimer.h(83): or       'bool operator <(const QElapsedTimer &,const QElapsedTimer &) throw()' [found using argument-dependent lookup]
              C:\Dev\qtbase\src\gui\text\qtextdocumentlayout.cpp(394): or       'bool operator <(const QCheckPoint &,QFixed)' [found using argument-dependent lookup]
              C:\Dev\qtbase\src\gui\text\qtextdocumentlayout.cpp(399): or       'bool operator <(const QCheckPoint &,int)' [found using argument-dependent lookup]
              while trying to match the argument list '(const int, QCheckPoint)'
              c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\algorithm(2262) : see reference to function template instantiation 'bool std::_Debug_lt<T,_Ty>(_Ty1 &,const _Ty2 &,const wchar_t *,unsigned int)' being compiled
              with
              [
                  T=QCheckPoint,
                  _Ty=int,
                  _Ty1=QCheckPoint,
                  _Ty2=int
              ]
              c:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\algorithm(2274) : see reference to function template instantiation '_FwdIt std::_Lower_bound<QCheckPoint*,_Ty,std::iterator_traits<_Iter>::difference_type>(_FwdIt,_FwdIt,const _Ty &,_Diff *)' being compiled
              with
              [
                  _FwdIt=QCheckPoint *,
                  _Ty=int,
                  _Iter=QCheckPoint *,
                  _Diff=std::iterator_traits<QCheckPoint *>::difference_type
              ]
              C:\Dev\qtbase\src\gui\text\qtextdocumentlayout.cpp(2195) : see reference to function template instantiation '_FwdIt std::lower_bound<QCheckPoint*,int>(_FwdIt,_FwdIt,const _Ty &)' being compiled
              with
              [
                  _FwdIt=QCheckPoint *,
                  _Ty=int
              ]

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            thohartm Thomas Hartmann
            mitch_curtis Mitch Curtis
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes