modernize-make-shared¶
此检查会查找通过显式调用构造函数和 new
表达式来创建 std::shared_ptr
对象的情况,并将其替换为对 std::make_shared
的调用。
auto my_ptr = std::shared_ptr<MyPair>(new MyPair(1, 2));
// becomes
auto my_ptr = std::make_shared<MyPair>(1, 2);
此检查还会查找对 std::shared_ptr::reset()
的调用,其中使用 new
表达式,并将其替换为对 std::make_shared
的调用。
my_ptr.reset(new MyPair(1, 2));
// becomes
my_ptr = std::make_shared<MyPair>(1, 2);
选项¶
- MakeSmartPtrFunction¶
一个字符串,指定 make-shared-ptr 函数的名称。默认值为 std::make_shared。
- MakeSmartPtrFunctionHeader¶
一个字符串,指定 make-shared-ptr 函数的对应头文件。默认值为 memory。
- IncludeStyle¶
一个字符串,指定使用的包含样式,llvm 或 google。默认值为 llvm。
- IgnoreMacros¶
如果设置为 true,则检查不会在宏内给出警告。默认值为 true。
- IgnoreDefaultInitialization¶
如果设置为非零值,则检查不会建议将默认初始化转换为值初始化的编辑,因为这会导致性能下降。默认值为 1。