Using nullptr instead of Q_NULLPTR
staniek at kde.org
Fri Aug 14 13:34:49 BST 2015
Sergio Martins wrote:
> states gcc 4.5 as the minimum version, meaning we can't use nullptr.
> However, since some time now, kf5 libraries are full of nullptr (~400
> occurrences) and nobody noticed.
> We can either:
> - Bump the requirement to gcc 4.6 and allow nullptr
> - Fix kf5 and s/nullptr/Q_NULLPTR
I found the the inconsistency in frameworks while thinking about adding some
null pointer policy for some k*.git repos I maintain.
> I prefer the first option, it's the way forward and if someone was using
> an old gcc he would have complained by now.
This is a good point. This thread drifted in a direction of minimum compiler
If I read the changelogs correctly msvc is like 8 years ahead of gcc (4.6)
in this department. MSVC 2005 supported it already, this is enough for us I
Now in 2015 I propose to go with nullptr. Not using Q_NULLPTR removes on
point against accepting Qt observed among 3rd-party folks: "Qt guys, like
the EFL guys, like to invent everything from scratch". A tiny bit but
I also think we agree that anything other than 0 is good for readability and
readability should be the priority.
Then, there's the consistency factor -- a reason to cover the topic of null
pointers in the guide. I find neither Qt is consistent in what to use, Qt is
not an example here then.
A patch for changing Q_NULLPTRs and NULLs is trivial to make but it's better
to have it once and not doing further undos, otherwise the git-blame will be
unnecessarily polluted. A patch for 0's would be a JJ.
In the worst case if someone calls us too modern, e.g for embedded projects,
we'd be able a macro to ECM kdecompilersettings that defined nullptr back to
0 (or is this already supported by cmake/etc.?)
PS: A Krazy check checking for usage of NULLs and Q_NULLPTR would be lovely.
Checking the use of 0's isn't easy, right?
Maybe I'll use pre-commit hook personally.
> Btw, what are the c++98/c++11 requirements for applications ? I could only
> find the page for frameworks.
> Sérgio Martins
regards, Jaroslaw Staniek
: A world-wide network of software engineers, artists, writers, translators
: and facilitators committed to Free Software development - http://kde.org
: A graphic art and office suite - http://calligra.org
: A visual database apps builder - http://calligra.org/kexi
Qt Certified Specialist:
More information about the kde-core-devel