Note that with G++/clang++ we could also solve the null issue by starting to use __attribute__((nonnull)). I'm not sure if MSVC has any equivalent of that.