shared_ptr(ptr)形式构造shared_ptr对象时,由于shared_ptr内部引用计数对象要通过new创建,这样所有的对象才能指向同一个引用计数变量;
而如果调用make_shared要调用1次new(会在new对象的同时也一起创建出引用计数对象),所以开销较小。
unique_ptr由于不需要存储引用计数,对象的所有权通过reset和release进行过渡。调用make_unique只要调用一次new,所以有着接近原生指针的性能。
但unique_ptr指向的对象不能共享,所以在有时候要求对象要共享又对性能有要求时,使用继承引用计数基类的方式来实现share,这时要求需要shared的类必须继承引用计数基类class A : public RefCount
,目的是将make_shared的两次new减少到1次,从而提升性能