Частный конструктор и make_sharedC++

Программы на C++. Форум разработчиков
Anonymous
Частный конструктор и make_shared

Сообщение Anonymous »

У меня есть класс синглтона с частным конструктором. В методе статического завода я делаю следующее: < /p>

Код: Выделить всё

shared_ptr MyClass::GetInstance()
{
static once_flag onceFlag;

call_once(onceFlag, []() {
if (_instance == nullptr)
_instance.reset(new MyClass());
});

return _instance;
}
< /code>

Если я использую < /p>

_instance = make_shared();
< /code>

Код не компилируется. Мой вопрос: почему новый 
может вызвать личный конструктор, но make_shared нет?

Подробнее здесь: https://stackoverflow.com/questions/451 ... ake-shared

Вернуться в «C++»