hi,大家好,我遇到了一个问题
我尝试使用std::unique_ptr制作一个单例,
我希望通过 std::make_unique构建这个智能指针,
我发现当构造函数是私有的时候会报告编译错误,共有则不会。
这是为啥呀?
class StorageHelper
{
private:
StorageHelper() = default;
~StorageHelper() = default;
static std::unique_ptr<StorageHelper> _mStorageHelperPtr;
public:
static StorageHelper *getInstance()
{
if(_mStorageHelperPtr==nullptr)
{
_mStorageHelperPtr = std::make_unique<StorageHelper>();
}
return _mStorageHelperPtr.get();
}
};
我尝试把构造函数改成共有的,就不会有问题了
但我还是不想暴露构造函数,也想用make_uinque
可以加友元