方法一:
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()};
struct enable_shared : public PriorityThreadPool
{
enable_shared(thread_num_t core_num, thread_num_t extension_num)
: PriorityThreadPool(core_num, extension_num) { }
};
// ��̬�ֲ����� Meyers singleton ������
// ���Ƿ��صIJ������ã��Ƿ�ֹ�û�ֱ�ӶԷ���ֵ����reset������ǰ�����̳߳�
static ptr_type instance = std::make_shared<enable_shared>(core_num, extension_num);