CppCoreGuidelines ES.47 用 nullptr,不要用 0 或 NULL
21 April 2023
“Use nullptr
rather than 0 or NULL
”
理由
可读性。减少出人意料: nullptr
不会和 int
混淆在一起。 nullptr
也是一种完整定义的类型。所以不太会被推演成错误的东西。 NULL
和 0
则很容易被当成数值。
例子
考虑:
void f(int); void f(char*); f(0); // call f(int) f(nullptr); // call f(char*)
强化
标记所有以 NULL
和 0
作为指针的地方。工具可能可以进行简单的代码调整。