[Interest] Building Qt 5.9 with Visual Studio 2017 and C++14 support

Bob Hood bhood2 at comcast.net
Mon Feb 19 00:36:14 CET 2018


On 2/18/2018 4:12 PM, Thiago Macieira wrote:
> On Sunday, 18 February 2018 14:55:20 PST Bob Hood wrote:
>> Is there some special trick to getting Qt 5.9.4 to build with Visual Studio
>> 2017 using C++14?
> No. C++14 is always enabled with MSVC 2017. That also means you can't turn it
> off, which in turn means the -c++std option is irrelevant.
>
>> So I can't use that option with Visual Studio 2017.  Visual Studio 2017 is
>> supposed to provide C++14, but my buildis stating:
>>
>>      ...
>>      Checking for C++14 support... no
>>      ...
>>      Using C++ standard ..................... C++11
>>      ...
> The Qt ABI is the same whether Qt itself was compiled with C++11, 14 or 17, in
> all supported compilers. So the -c++std option is really irrelevant and you
> should never set it. Please ignore it and ignore the output that configure
> prints.
>
> In any case, what it prints is just a side-effect of there being no way to
> tell the compiler which version to target. So configure detects it does
> support C++11 features we need and can't turn anything else further on, so
> reports C++11.
>
> Note that the /std:c++latest option to the compiler should not be used. It's
> imperfectly implemented and is known to break Windows SDK headers, so Qt is
> not tested with the option. If you choose to use the option and something
> breaks, you get to keep both pieces. However, if you fix the breakage, patches
> will be appreciated.
>
> Finally, please note that due to disagreements with Microsoft's compiler team
> on some  C++14 feature detection mechanisms, Qt headers will conclude the
> feature is absent. Please redirect your complaints about __has_include and the
> detection macros to Microsoft. They are aware of the subject and it seems they
> will implement the rules as all the other compilers do in the future, but I
> don't have a timeline for you. If you really want those features, put pressure
> on them or use another compiler. Also, you can still use them in your code.

Well...ok, then.  :)


Thanks for the info, and for putting up with Microsoft.



More information about the Interest mailing list