clang tidy pro 类型成员 init resharper
clang tidy pro type member init resharper
我有一些代码解析 json 像这样:
QJsonParseError errors;
auto doc = QJsonDocument::fromJson(myJson.toUtf8(), &errors);
Resharper 的 clang tidy 建议标记 QJsonParseError 错误是 'uninitialized record type'
建议的解决方法是通过 {} 对 C++11 的变量进行零初始化。
resharper 提供的自动修复,放在一些括号中,例如:QJsonParseError errors{};
那实际上是什么 mean/do?
零初始化保证 class/struct 的成员是零初始化的。例如-
struct student
{
int idNo;
char name[20];
};
所以,如果 student
的对象是零初始化的,那么可以保证成员变量 idNo, name
值被初始化为零(即 idNo
= 0 和 name
数组用零填充)。
在您的例子中,QJsonParseError
成员是零初始化的,而不是在对象初始化期间填充一些随机值。
我有一些代码解析 json 像这样:
QJsonParseError errors;
auto doc = QJsonDocument::fromJson(myJson.toUtf8(), &errors);
Resharper 的 clang tidy 建议标记 QJsonParseError 错误是 'uninitialized record type'
建议的解决方法是通过 {} 对 C++11 的变量进行零初始化。 resharper 提供的自动修复,放在一些括号中,例如:QJsonParseError errors{};
那实际上是什么 mean/do?
零初始化保证 class/struct 的成员是零初始化的。例如-
struct student
{
int idNo;
char name[20];
};
所以,如果 student
的对象是零初始化的,那么可以保证成员变量 idNo, name
值被初始化为零(即 idNo
= 0 和 name
数组用零填充)。
在您的例子中,QJsonParseError
成员是零初始化的,而不是在对象初始化期间填充一些随机值。