[Interest] [Mingw-w64-public] Compiling Qt (4 or 5) with "-std=c++11"
K. Frank
kfrank29.c at gmail.com
Thu Mar 21 22:53:22 CET 2013
Hello Ruben!
On Thu, Mar 21, 2013 at 5:37 PM, Ruben Van Boxem
<vanboxem.ruben at gmail.com> wrote:
>
> Op 21 mrt. 2013 22:31 schreef "K. Frank" <kfrank29.c at gmail.com> het
> volgende:
>
>> Hi Thiago!
>> ...
>> On Thu, Mar 21, 2013 at 5:07 PM, Thiago Macieira
>> <thiago.macieira at intel.com> wrote:
>> > On quinta-feira, 21 de março de 2013 16.52.29, K. Frank wrote:
>> >> Hello Lists!
>> > ...
>> >> As I understand it, using "-std=c++11" causes abi breakage, so to do
>> >> this, I
>> >> will have to recompile the various libraries I use.
>> >
>> > Not with Qt. Qt has the very same ABI, whether you compile it with C++11
>> > or
>> > C++98.
>>
>> I guess I should take your word for it. But I'm a little confused, so let
>> me
>> ask for some clarification. How does Qt control the abi produced by the
>> compiler? I was under the distinct impression that "-std=???11" caused
>> significant abi breakage, that this was recognized as an issue, but, I
>> guess, that the gcc folks felt that it was worth it for some reason.
>>
>> How could Qt manage to dodge that bullet? Or am I misunderstanding
>> the issue?
>
> Different ABI is only problematic if you pass e.g. std::string objects
> across different module ABI boundaries. I suppose Qt avoids using the
> standard library as it provides its own implementations of most if not all
> standard library functionality.
Thank you Ruben, that sounds like the explanation. Now that I think
about it, I seem to recall the abi breakage being associated with the
standard library. Certainly having std:;string not work would be
considered pervasive and severe breakage. But, as you point out, Qt
uses very little (if any) of the template part of the standard library, so
I guess it's a non-issue.
>
> Ruben
Thanks for the clarification.
K. Frank
More information about the Interest
mailing list