关于make_shared无法访问非公有构造函数的解决方法
方法一:
class Obj { struct enable_shared : public Obj { enable_shared(...) : Obj(...) { } }; void someFunction() { auto ptr = std::make_shared<enable_shared>(...); } private: Obj(...); };
方法二:
std::shared_ptr<Obj> pA{new Obj()};