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::stringstd::wstring。设置为例如 ::std::basic_string;llvm::StringRef;QString 以对自定义类执行此检查。