Jump to content
Visual Boy Advance-M

C++11 standard and nullptr

Recommended Posts



There are a lot of instances that use NULL as opposed to the shiny and new nullptr. The thing is, though, NULL is typically defined as the number 0, due to C legacy stuff (http://en.cppreference.com/w/cpp/types/NULL ). I've noticed that sometimes this occurs in the C++ source:

static int(ZEXPORT *utilGzWriteFunc)(gzFile, const voidp, unsigned int) = NULL;
static int(ZEXPORT *utilGzReadFunc)(gzFile, voidp, unsigned int) = NULL;
static int(ZEXPORT *utilGzCloseFunc)(gzFile) = NULL;

from what I'm seeing, you probably want nullptr, but that could just as easily need to eval to literal zero, and what's more, it's not guaranteed to be either.


And according to Sublime Text, NULL shows up a lot (this is just *.cpp files!):

1573 matches across 129 files


So, besides using nullptr or literal zero in new code, how do you want to handle this? A bunch of individual file commits, or one big overhaul? Also, I personally beleve the C code should still use NULL, because it's defined as a void* there, but that's illegal in C++.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now