We have not one, not two, but THREE integration failures TODAY alone caused by that compiler failing to meet what we've come to expect from C++11. This is going to happen again and again.
So I'm pleading again: can we drop it? What are the download numbers for 5.9.0? Issue 1 (12:19 GMT): https://testresults.qt.io/coin/integration/qt/qtbase/tasks/1497525737 FAIL! : tst_QRandomGenerator::stdGenerateCanonical(default) '[] { QRandomGenerator rd; qreal value = std::generate_canonical<qreal COMMA 32>(rd); return value > 0 && value < 1 && value != RandomValueFP; }()' returned FALSE. (1st try) Turns out that std::generate_canonical with MSVC 2013's Standard Library NEVER generates a correct value. The function is specified to return a number in the range [0,1), but the implementation always returns a number >= 1. Issue 2 (19:47 GMT): https://testresults.qt.io/coin/integration/qt/qtbase/tasks/1497552138 FAIL! : tst_QLocale::formattedDataSize(Russian-IEC-0) Compared values are not the same Actual (QLocale(language).formattedDataSize(bytes, decimalPlaces, units)): "0 \u0431\u0430\u0439\u0442\u044B" Expected (output) : "0 ?????" The source code had "0 \u0431...", but with MSVC 2013 (and 2015 until Update 2), the Unicode codepoint U+0431 is attempted to be converted to the execution character set. Without the /utf-8 option added in MSVC 2015 Update 2, the conversion fails and the compiler prints: warning C4566: character represented by universal-character-name '\u0431' cannot be represented in the current code page (1252) [ok, not a C++11 issue per se, but we still want to use Unicode source code] Issue 3 (21:18 GMT): https://testresults.qt.io/coin/integration/qt/qtbase/tasks/1497560567 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\xutility(371) : error C2825: '_Iter': must be a class or namespace when followed by '::' text\qfontsubset.cpp(200) : see reference to class template instantiation 'std::iterator_traits<int>' being compiled Source: QVector<int> reverseMap(0x10000, 0); Both elements are int, so they seem to match the constructor being added in https://codereview.qt-project.org/151324: template <typename InputIterator, QtPrivate::IfIsInputIterator<InputIterator> = true> QVector(InputIterator f, InputIterator l); But it shouldn't because of that SFINAE exclusion. The compiler failed (expression SFINAE?). I know the first two can be worked around: 1) QSKIP MSVC 2013 2) rewrite with UTF-8 byte escape sequences ("\xd0\xb1") But I repeat: these problems are going to turn up again and again. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development