On Tue, Feb 10, 2015 at 05:15:03PM -0500, Matthew Woehlke wrote:
> On 2015-02-08 16:42, André Pönitz wrote:
> > I.e. in case of a simple pointer initialization, why should one *ever* 
> > prefer 
> > 
> > void something()
> > {
> >     Foo *f = Q_NULLPTR;
> >     ...
> > }
> > 
> > over
> > 
> > void something()
> > {
> >     Foo *f = 0;
> >     ...
> > }
> > 
> > ?
> 
> For the same reason that *any* style rule exists: to encourage standard
> practices that make it easier to use compiler tools to find bugs.
> 
> If I religiously use Q_NULLPTR, than I can also turn on the warning that
> tells me when I use '0' as a null pointer constant. Which in turn can
> help catch places where I really meant '0' and *not* a null pointer but
> an unintended conversion is occurring. Conversely, because 'nullptr' is
> not an integer, you can't accidentally call something that takes an
> integer when you really meant a pointer (doesn't apply so much to your
> specific example, but is a reason to use it in general).
> 
> If '0' is permitted in some contexts, then it is hard to use the
> warning, and therefore hard to catch bugs. (And, as mentioned, not using
> it *in headers* can be particularly annoying to someone who wants to
> employ such a policy downstream, and can't because Qt produces huge
> amounts of warning spam. Granted, "in headers" should perhaps read "in
> public macros", but still...)
> 
> As Bo noted, it's your own problem whether or not to use it in Qt's own
> .cpp files. Please consider your users when deciding whether or not to
> use it in headers, however.

Are you reading the mails you are responding to?

Andre'
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to