Motivating examples:
Synthetic pointers: https://github.com/hanumantmk/mongo/blob/alias/src/mongo/util/encoded_value/pointer.h coercion to other pointer types: https://github.com/hanumantmk/mongo-cxx-driver/blob/INSANITY/test/test_4.cpp
tl;dr
- NULL is integral in C++
- NULL is generally 0 or 0L
- Overloads on integer types are reckless
- nullptr is a nullptr_t