modernize-use-nullptr

此检查将空指针常量(例如 NULL0)的用法转换为使用新的 C++11 和 C23 nullptr 关键字。

示例

void assignment() {
  char *a = NULL;
  char *b = 0;
  char c = 0;
}

int *ret_ptr() {
  return 0;
}

转换至

void assignment() {
  char *a = nullptr;
  char *b = nullptr;
  char c = 0;
}

int *ret_ptr() {
  return nullptr;
}

选项

IgnoredTypes

以分号分隔的正则表达式列表,用于匹配将忽略隐式转换的指针类型。默认值为:std::_CmpUnspecifiedParam::;^std::__cmp_cat::__unspec

NullMacros

以逗号分隔的宏名称列表,这些名称将与 NULL 一起转换。默认情况下,此检查将仅替换 NULL 宏,并跳过任何类似的用户定义宏。

示例

#define MY_NULL (void*)0
void assignment() {
  void *p = MY_NULL;
}

转换至

#define MY_NULL NULL
void assignment() {
  int *p = nullptr;
}

如果 NullMacros 选项设置为 MY_NULL