Вопросы по теме 'make-shared'

Проблема с созданием shared_ptr
Я новичок в умных указателях, и я нахожусь в процессе преодоления каждого камня преткновения. У меня есть структура texture_t : struct texture_t { hash32_t hash; uint32_t width; uint32_t height; uint32_t handle; }; Когда я...
540 просмотров
schedule 07.12.2022

std::make_shared(), std::weak_ptr и циклические ссылки
Мой вопрос касается этого утверждения: Если какой-либо std::weak_ptr ссылается на управляющий блок, созданный std::make_shared после окончания времени существования всех общих владельцев, память, занимаемая T, сохраняется до тех пор, пока все...
567 просмотров
schedule 19.05.2022

Общие указатели, не увеличивающие use_count
Я пытаюсь понять, как использовать std::shared_ptr в С++. Но это довольно запутанно, и я не понимаю, как создать несколько общих указателей, указывающих на один и тот же объект. Даже документация и онлайн-материалы не очень ясны. Ниже приведен...
1085 просмотров

В каком смысле weak_ptr «владеет» shared_ptr?
Я пытался написать заголовок к этому вопросу около 10 минут, и, как вы увидите, в конце концов мне это не удалось. [Примечание редактора: кажется, я это исправил.] Я читал блог Херба Саттера , и в теме используется std::make_shared, его минусы и...
204 просмотров
schedule 21.02.2023

Почему 'std::make_shared' всегда использует выделение глобальной памяти даже с перегруженными операторами new/delete класса?
При использовании std::make_shared<C> перегруженные операторы new/delete класса не вызываются. При использовании std::shared_ptr<C> , std::unique_ptr<C> и std::make_unique<C> используются перегруженные операторы...
390 просмотров
schedule 12.12.2023

Как вызвать std::make_shared в случае аргументов initializer_list?
Я пытаюсь использовать std::make_shared для построения объекта в куче в моей программе вместо new , но когда конструктор объекта поставляется со списком инициализаторов, простая замена не работает, и мне приходится вручную указывать точный тип:...
49 просмотров
schedule 06.07.2023