Программы на 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
1747570470
Anonymous
У меня есть класс синглтона с частным конструктором. В методе статического завода я делаю следующее: < /p>
[code]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>
Код не компилируется. Мой вопрос: почему новый [/code] может вызвать личный конструктор, но make_shared нет?
Подробнее здесь: [url]https://stackoverflow.com/questions/45127107/private-constructor-and-make-shared[/url]