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

MSVC warns on std::is_permutation in QHash header

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.9.2
    • 5.9.1
    • None
    • Windows 10 - MSVC 2015 Update 3
    • 548c2fbb3aa1ae6b7d3614b6381ea051977e2834

    Description

      Since 5.9.1 our MSVC debug build will fail with this warning.

      Since we build with "warnings are errors" our build is broken at the moment.

      AccessRight is an "enum class" in a Q_GADGET with Q_ENUM defined.

      C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xutility(3441): error C2220: warning treated as error - no 'object' file generated
       C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xutility(3441): warning C4996: 'std::is_permutation::_Unchecked_iterators::_Deprecate': Call to 'std::is_permutation' with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
       C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xutility(3441): note: see declaration of 'std::is_permutation::_Unchecked_iterators::_Deprecate'
       C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xutility(3466): note: see reference to function template instantiation 'bool std::is_permutation<_FwdIt1,_FwdIt2,std::equal_to<void>>(_FwdIt1,_FwdIt1,_FwdIt2,_Pr)' being compiled
               with
               [
                   _FwdIt1=QHash<dummy::AccessRight,QHashDummyValue>::const_iterator,
                   _FwdIt2=QHash<dummy::AccessRight,QHashDummyValue>::const_iterator,
                   _Pr=std::equal_to<void>
               ]
       C:\J\workspace\default_Win32_MSVC\libs\build\dist\include\QtCore/qhash.h(953): note: see reference to function template instantiation 'bool std::is_permutation<QHash<T,QHashDummyValue>::const_iterator,T1>(_FwdIt1,_FwdIt1,_FwdIt2)' being compiled
               with
               [
                   T=dummy::AccessRight,
                   T1=QHash<dummy::AccessRight,QHashDummyValue>::const_iterator,
                   _FwdIt1=QHash<dummy::AccessRight,QHashDummyValue>::const_iterator,
                   _FwdIt2=QHash<dummy::AccessRight,QHashDummyValue>::const_iterator
               ]
       C:\J\workspace\default_Win32_MSVC\libs\build\dist\include\QtCore/qhash.h(932): note: while compiling class template member function 'bool QHash<T,QHashDummyValue>::operator ==(const QHash<T,QHashDummyValue> &) const'
               with
               [
                   T=dummy::AccessRight
               ]
       C:\J\workspace\default_Win32_MSVC\libs\build\dist\include\QtCore/qset.h(74): note: see reference to function template instantiation 'bool QHash<T,QHashDummyValue>::operator ==(const QHash<T,QHashDummyValue> &) const' being compiled
               with
               [
                   T=dummy::AccessRight
               ]
       C:\J\workspace\default_Win32_MSVC\libs\build\dist\include\QtCore/qset.h(251): note: see reference to class template instantiation 'QHash<T,QHashDummyValue>' being compiled
               with
               [
                   T=dummy::AccessRight
               ]
       c:\j\workspace\default_win32_msvc\source\src\core\context\AuthContext.h(87): note: see reference to class template instantiation 'QSet<dummy::AccessRight>' being compiled
      

      Attachments

        Issue Links

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

          Activity

            People

              peppe Giuseppe D'Angelo
              misery André Klitzing
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes