[Development] Supported compilers for Qt 6

Thiago Macieira thiago.macieira at intel.com
Tue Aug 13 02:10:36 CEST 2019

On Monday, 12 August 2019 13:23:45 PDT Christian Gagneraud wrote:
> On Mon, 12 Aug 2019, 22:13 Thiago Macieira, <thiago.macieira at intel.com>
> wrote:
> > On Monday, 12 August 2019 13:03:47 PDT Mutz, Marc via Development wrote:
> > > The milestone is std::byte, which which we could put QByteArray on a
> > > sound basis. And char8_t, which would make QUtf8String(View) fly.
> > 
> > QByteArray, due to its dual string / byte array nature, will continue to
> > operate on char. After all, char *is* a byte. We should add the unsigned
> > char
> > variants too, though.
> What is a byte? An 8 bits unsigned integer, 0-255.

You described an octet.

A byte is the smallest unit of addressable memory in C. That's the definition 
of byte. That means a char, unsigned char or signed char are bytes. Those 
three types are also allowed to alias any other type, so functions like memcpy 
and memcmp can be written.

> Char is unsigned on Intel arch, but is signed on arm.

The other way around. But they're still bytes.

> Maybe it's time to get rid of qbytearray and qstring and qstringview, ...
> And fully embrace (and contribute, like boost does, to)  modern c++.

Not going to happen. Not even if SG16 were done right now (instead of C++23 or 
later). There's just too much code that we need to be compatible with. QString 
is there to stay, period.

Whether we can rewrite lots of its internals using the C++ standard library is 
a different story. We should be working with SG16 (and I am) to see that it 
can happen. But don't expect major progress until C++23 or 26.

Also, we're modern C++.

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products

More information about the Development mailing list