I want to use the make_shared
function with a derived class, like below
class Base {
public:
typedef std::shared_ptr
std::shared_ptr
has a converting constructor that can make a shared_ptr<Base>
from a shared_ptr<Derived>
, so the following should work:
#include <memory>
class Base {
public:
typedef std::shared_ptr<Base> Ptr;
};
class Derived : public Base {};
int main() {
Base::Ptr myPtr = std::make_shared<Derived>();
}