[Development] Upgrading the sources to C++11 keywords (Q_NULLPTR, etc.)
Knoll Lars
Lars.Knoll at theqtcompany.com
Thu Jul 23 15:47:10 CEST 2015
On 23/07/15 14:23, "Marc Mutz" <marc.mutz at kdab.com> wrote:
>On Thursday 08 January 2015 23:33:34 Thiago Macieira wrote:
>> * Q_NULLPTR - strongly encouraged
>
>Ok, trying to summarize the discussion so we can move forward.
>
>There's a bug report (https://bugreports.qt.io/browse/QTBUG-45291) about
>Qt
>headers not compiling with -Wzero-as-null-pointer-constant, sometimes not
>even
>when locking the Qt headers away behind an -isystem. I understood the
>discussion in this thread as follows:
>
>- ok to use Q_NULLPTR in public headers (the bug report suggests that this
> should actually be enforced by headersclean).
>- ok to use in new code or as a drive-by iff the 0 isn't immediately
>visible
> as a nullptr. Example:
> validator(0), // Q_NULLPTR ok here
> Counter-example:
> const char *msg = 0 // Q_NULLPTR not wanted here
>- otherwise, we don't want Q_NULLPTR. We're waiting until we can move
>directly
> to nullptr. In particular, we cannot use Q_NULLPTR for its potentially
> disambiguating characteristics, until we require C++11 nullptr. So code
>must
> still compile (modulo warnings) (and have the same meaning) if the
>Q_NULLPTR
> is replaced back to 0.
>
>Consensus?
Mostly. But it looks like VS 2012 support nullptr, so I’d say we wait for
5.6 to be branched. After that we should globally get rid of Q_NULLPTR.
i.e. Do a search and replace Q_NULLPTR -> nullptr in our code base. Then
IMO the first two rules above should be taken into use with
s/Q_NULLPTR/nullptr/.
Cheers,
Lars
More information about the Development
mailing list