CppCoreGuidelines C.151 用 make_shared() 创建 shared_ptr
08 January 2023
C.151: Use make_shared()
to construct objects owned by shared_ptr
’s
理由
用make_shared()
代码看起来更简洁。同时也能避免中间步骤分配引用计数。
例子
shared_ptr<X> p1 { new X{2} }; // bad auto p = make_shared<X>(2); // good
make_shared()
那句只提到了一次 X
,所以更精简,速度更快。
强化
- (简单)对使用 new 创建
shared_ptr
的情况提出报警。