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,llvm 或 google。默认值为 llvm。
- IgnoreMacros¶
如果设置为 true,则检查不会在宏内部发出警告。默认值为 true。
- IgnoreDefaultInitialization¶
如果设置为非零值,则检查不会建议将默认初始化转换为值初始化的编辑,因为这会导致性能下降。默认值为 1。