[Development] Are we already allowed to use C++17 in dev?

Thiago Macieira thiago.macieira at intel.com
Wed Jan 8 23:50:28 CET 2020


On Wednesday, 8 January 2020 14:12:17 PST Olivier Goffart wrote:
> On 08.01.20 18:21, Thiago Macieira wrote:
> > qcc doesn't seem to support it.
> > 
> >   kernel/qcoreapplication.cpp: In static member function 'static void
> 
> Not yet:
> 
> - qmake isn't build with -std=c++17 yet, so you can't have C++17 in the
> files used by the boostrap lib. (.cpp or .h)

qcoreapplication.cpp is not part of the bootstrap, so it's never included in 
qmake.

> - examples and tests are not yet build with C++17 by default

Not my case.

> - We still build for MacOS 10.13 which do not support the C++17 stdlib

Same solution as the current problem. Just remove that OS/compiler.

> But the CI would still fail because it still runs with MacOS 10.13
> and we don't want running the test with MacOS 10.13 just yet because tests
> are not run on MacOS 10.14 because they are failling:
> 
> https://codereview.qt-project.org/c/qt/qt5/+/284310
> 
> https://bugreports.qt.io/browse/QTQAINFRA-3108
> https://bugreports.qt.io/browse/QTBUG-75786
> 
> IMHO, these two issues should be P0 because if we are serious about using
> C++17 fir Qt6, we should be able to do it now. This has been a blocker for
> months. If some tests are can't be fixed on MacOs 10.14, they should then
> be blacklisted so we can still proceed with C++17.

I might regret asking this, but how is our macOS 10.15 support now?

> And this issue you have in
> "LinuxRHEL_7_6x86_64QNXQNX_700armv7GCCqtci-linux-RHEL-7.6", is maybe
> something else. (Maybe
> https://codereview.qt-project.org/c/qt/qtbase/+/283832 fixes it, maybe not)

It doesn't.

Anyway, you made me actually look at why this compiler isn't compiling my 
C++17 code. That's because C++17 failed in configure:

Checking for C++17 support... 
[...]
> main.cpp:8:19: fatal error: variant: No such file or directory

#include <variant> was added in 5b6eb8e247d246a28bdc8ce533c52d7647a44a90 
(5.12) to work around the macOS 10.13 issue. So when we boot macOS 10.13 from 
the CI, we can remove the #include and allow this compiler to pass detection 
as C++17-capable.

Note how our requirement of C++17 does not extend to the Standard Library.

Or we declare that <variant> is required and boot this compiler from the CI 
too. I don't care which is preferred.

Third option is to upgrade the compiler for QNX to a more recent version. Is 
there one that is C++17 Standard Library compliant? I thought QNX was going to 
change to libc++ so this shouldn't be a problem.
-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products





More information about the Development mailing list