Expressions and statements
ES.47
Use `nullptr` rather than `0` or `NULL`
Reason
Readability. Minimize surprises: nullptr cannot be confused with an int. nullptr also has a well-specified (very restrictive) type, and thus works in more scenarios where type deduction might do the wrong thing on NULL or 0.
Example
Consider:
void f(int);
void f(char*);
f(0); // call f(int)
f(nullptr); // call f(char*)
Enforcement
Flag uses of 0 and NULL for pointers. The transformation might be helped by simple program transformation.