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

Olivier Goffart olivier at woboq.com
Mon Jan 13 08:18:40 CET 2020


On 2020-01-08 23:50, Thiago Macieira wrote:
> 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.

Right, I was replying in general, not for your particular 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.

Well it might, since this patch forces the use of C++17 everywhere, regardless 
of the configure test. which i believe is the problem.

> 
> 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.
> 

It would be nice to be able to use the std library if possible. If only for 
things like std::optional.

-- 
Olivier


More information about the Development mailing list