On 17/01/2023 23:07, Thiago Macieira wrote: >> The reason is that it is failing to parse a constant expression.
Oliver Wolff (27 January 2023 08:23) replied: > Generally I think that raising the minimal version could be done, but > is that reason alone good enough to warrant a minimal version raise > for every MSVC Qt user? How severe is that issue and how hard is it to > work around it? > > It looks like a minor thing if you put it like that. So the issue is that we have run into several cases where we need something to be constexpr, for example in order to be able to use it in a template, and By The Rules it *is* but MSVC 2019 doesn't grok that it's really constexpr, so we're blocked from doing what we should be able to do. Two examples: https://codereview.qt-project.org/c/qt/qtbase/+/453446/12 I'm obliged to kludge round this (see latest PS, 17) in order to split a template's implementation between the case of a numerator that's a power of two or not. PS 12 is code that Should Just Work (TM). https://codereview.qt-project.org/c/qt/qtbase/+/441286 Thiago wrote a nice little character-set matcher to help me make QLocale's number-parsing more efficient, which depends on makeCharacterSetMatch() being constexpr, but MSVC 2019 lets us down. That's blocking my fix for QTBUG-107801, issues with some tokens we've always assumed were single-character actually being multi-glyph in some (not even vaguely obscure) locales. Marc has a suggestion for how to maybe kludge round it, but if we could drop MSVC 2019 we could save some kludge-research time and just get on with Doing It Naturally. I doubt these are the only examples out there, and I'm quite sure that we'll trip over more as time goes by. I dare say Thiago, Marc or Ville can give more thorough answers - but, in short, MSVC 2019 is getting in the way of Doing Things Right and making the most of modern C++, Eddy. -- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development