bugprone-string-constructor¶
查找可疑的字符串构造函数,可能是错误。
一个常见的错误是将'fill'字符串构造函数的参数交换。
示例
std::string str('x', 50); // should be str(50, 'x')
使用比字符串字面量长度更大的长度调用字符串字面量构造函数是可疑的,并且会向字符串添加额外的随机字符。
示例
std::string("test", 200); // Will include random characters after "test".
std::string_view("test", 200);
使用参数从构造函数创建空字符串被认为是可疑的。程序员应该使用空构造函数。
示例
std::string("test", 0); // Creation of an empty string.
std::string_view("test", 0);
选项¶
- WarnOnLargeLength¶
当为 true 时,检查将对长度大于
LargeLengthThreshold
的字符串发出警告。默认值为 true。
- LargeLengthThreshold¶
指定大长度阈值的整数。默认值为 0x800000。
- StringNames¶
默认值为 ::std::basic_string;::std::basic_string_view。
用于对该检查应用的类名,以分号分隔。默认情况下,::std::basic_string 应用于
std::string
和std::wstring
。设置为例如 ::std::basic_string;llvm::StringRef;QString 以对自定义类执行此检查。