CppCoreGuidelines R.22 用 make_shared 创建 shared_ptr
22 February 2023
“Use make_shared()
to make shared_ptr
’s”
理由
make_shared
语句代码更简洁。且能避免分开分配内存,对象的生成和引用计数更接近。
例子
shared_ptr<X> p1 { new X{2} }; // bad auto p = make_shared<X>(2); // good
第二句只用到一次 X,所以代码更精简,速度更快。
强化
- 警告:用 new 构造
shared_ptr
的地方