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