Я пытаюсь понять, зачем вообще нужно использовать enable_shared_from_this
?
Я нашел, вот такое обьяснение
https://stackoverflow.com/a/5548314/5709159
где вкратце говориться о том, что вот так плохо
struct S
{
shared_ptr<S> dangerous()
{
return shared_ptr<S>(this); // don't do this!
}
};
int main()
{
shared_ptr<S> sp1(new S);
shared_ptr<S> sp2 = sp1->dangerous();
return 0;
}
а вот так хорошо
struct S : enable_shared_from_this<S>
{
shared_ptr<S> not_dangerous()
{
return shared_from_this();
}
};
int main()
{
shared_ptr<S> sp1(new S);
shared_ptr<S> sp2 = sp1->not_dangerous();
return 0;
}
Тут вопросов нет и действительно при данном сравнении понятно, что правильно, а что нет.
Но в чем проблема сделать просто вот так
int main()
{
shared_ptr<S> sp1(new S);
shared_ptr<S> sp2 = sp1;
return 0;
}
И не нужно ничего придумывать, ни от чего наследовать и переопределять.
В чем хитрость?
Хитрость в том, что предложенный вами способ работает только за пределами членов класса. Но что если нужно создать shared_ptr
на объект класса из метода этого класса? В качестве примера где это может понадобится (хотя в таком случае я предпочитаю использовать coroutines
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
В процессе работы PopUp создаётся и накапливается неактивный код, который приводит к багуПопробовал его руками удалить и всё начало работать
Элементы залезают под картинку,помогите пожалуйста,я новичек и уже час ,если не больше пытаюсь найти ошибку ,но все четноМне нужно ,чтобы...
Не могу понять каким образом можно сдвинуть 6,8,11 ячейки, чтобы получилось как на картинке?