Частный конструктор и 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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