Using nullptr instead of Q_NULLPTR
staniek at kde.org
Fri Aug 14 22:53:44 BST 2015
Thiago Macieira wrote:
> On Friday 14 August 2015 14:34:49 Jarosław Staniek wrote:
>> I also think we agree that anything other than 0 is good for readability
>> and readability should be the priority.
> Note that the Qt 5.7 policy still allows and even asks for use of 0 as
> null in some places. The policy is:
> * always use nullptr in public headers. No exceptions.
> * use nullptr or 0 in non-public headers or regular sources so
> readability is
> good. There's no point in using nullptr where 0 is obviously a null
> pointer, like:
> char *s = 0;
>> 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.
> The policy above applies to Qt 5.7. For 5.6, only the first part applies
> and it needs to be Q_NULLPTR.
>> 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.?)
> Don't do that. If you use nullptr, there's no going back to zero because
> it's not the same. You've irrevocably locked yourself into requiring a
> compiler that supports it.
I should say "back to Q_NULLPTR", right?
It's just helping people with old compilers by making the code SC.
>> 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?
> Qt headers should pass that starting with 5.6.
Yes it's useful for KF5. @everyone: can we have have it added in our build
flags for KF5 (maybe not for users of KF5)?
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