08 January 2023

C++ 核心指南目录

“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 的情况提出报警。