modernize-make-unique

此检查会找到通过显式调用构造函数和 new 表达式创建 std::unique_ptr 对象的情况,并将其替换为对 C++14 中引入的 std::make_unique 的调用。

auto my_ptr = std::unique_ptr<MyPair>(new MyPair(1, 2));

// becomes

auto my_ptr = std::make_unique<MyPair>(1, 2);

此检查还会找到对 std::unique_ptr::reset() 的调用,其中使用了 new 表达式,并将其替换为对 std::make_unique 的调用。

my_ptr.reset(new MyPair(1, 2));

// becomes

my_ptr = std::make_unique<MyPair>(1, 2);

选项

MakeSmartPtrFunction

一个字符串,指定 make-unique-ptr 函数的名称。默认值为 std::make_unique

MakeSmartPtrFunctionHeader

一个字符串,指定 make-unique-ptr 函数的对应头文件。默认值为 <memory>

IncludeStyle

一个字符串,指定使用的 include-style,llvmgoogle。默认值为 llvm

IgnoreMacros

如果设置为 true,则检查不会在宏内部发出警告。默认值为 true

IgnoreDefaultInitialization

如果设置为非零值,则检查不会建议将默认初始化转换为值初始化的编辑,因为这会导致性能下降。默认值为 1