modernize-use-nullptr¶
此检查将空指针常量(例如 NULL
,0
)的用法转换为使用新的 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
。