Added better support for nullptr_t types.
Check for defines before defining to get rid of some warnings.