modernize-use-default-member-init

此检查将 C++11 中构造函数的成员初始化器转换为新的默认成员初始化器。其他与默认成员初始化器匹配的成员初始化器将被移除。这可以减少重复代码或允许使用‘= default’。

struct A {
  A() : i(5), j(10.0) {}
  A(int i) : i(i), j(10.0) {}
  int i;
  double j;
};

// becomes

struct A {
  A() {}
  A(int i) : i(i) {}
  int i{5};
  double j{10.0};
};

注意

仅转换内置类型、枚举和指针的成员初始化器。 readability-redundant-member-init 检查将删除类中冗余的成员初始化器。

选项

UseAssignment

如果此选项设置为 true(默认值为 false),则检查将使用赋值初始化成员。例如

struct A {
  A() {}
  A(int i) : i(i) {}
  int i = 5;
  double j = 10.0;
};
IgnoreMacros

如果此选项设置为 true(默认值为 true),则检查不会对宏中声明的成员发出警告。