我想使用make_shared<T>
函数来创建一个派生类,就像下面这样
class Base {
public:
typedef std::shared_ptr<Base> Ptr;
};
class Derived : public Base {};
Base::Ptr myPtr = std::make_shared(/* Derived() */ );
我应该如何告诉make_shared创建这样一个对象?
我想避免传统的
Base::Ptr ptr = Base::Ptr(new Derived());
为了在make_shared函数中利用单个分配。