Вопросы по теме 'weak-ptr'

shared_ptr и weak_ptr различия
Я читаю книгу Скотта Мейерса «Эффективный C ++». Было упомянуто, что tr1::shared_ptr и tr1::weak_ptr действуют как встроенные указатели, но они отслеживают, сколько tr1::shared_ptrs указывает на объект. Это называется подсчетом ссылок. Это...
56088 просмотров

static_pointer_cast для weak_ptr
В c++0x есть std::static_pointer_cast для std::shared_ptr, но нет эквивалентного метода для std::weak_ptr. Это намеренно или недосмотр? Если недосмотр, как бы я определил соответствующую функцию?
5529 просмотров
schedule 08.07.2022

Циклическая зависимость в MVC std::shared_ptr
Я пытаюсь создать эту структуру MVC для своего проекта. Я впервые использую shared_ptr и weak_ptr и получаю много проблем, кроме круговой зависимости. Модель доступна для наблюдения. Вид — это наблюдатель. class Observable { std::set<...
453 просмотров

Владение общими ресурсами с использованием std::weak_ptr
Мне интересно, как (используя С++ 11 и, надеюсь, с обратными (boost или TR1) совместимыми типами интеллектуальных указателей) достичь: Один экземпляр класса ( ModelController ) владеет ресурсом ( InputConsumer ), а другой компонент ( InputSender ,...
524 просмотров

о состоянии гонки weak_ptr
1. я опубликовал вопрос ( о потокобезопасности weak_ptr ) несколько дней назад, и у меня есть другой связанный вопрос сейчас. Если я сделаю что-то подобное, будет ли введено условие гонки как g_w в приведенном выше примере? (Моя платформа - ms...
755 просмотров

Гарантируется ли, что weak_ptr истечет, когда shared_ptr будет сброшен на тот же адрес, который содержит?
Гарантируется ли, что weak_ptr истечет, когда shared_ptr будет сброшен на тот же адрес, который содержит? #include <cassert> #include <memory> int main() { int* i = new int(0); std::shared_ptr<int> si( i );...
887 просмотров
schedule 04.07.2022

Должен ли я вызвать сброс для weak_ptr, если я замечу, что срок его действия истек?
У меня есть набор объектов Creature , созданных и принадлежащих в одной части моего приложения с использованием std::make_shared и std::shared_ptr . Я также отслеживаю выбор нуля или одного Creature в объекте World , используя...
2036 просмотров
schedule 21.08.2022

Что происходит с просроченным weak_ptr на карте
Я хотел бы понять, что происходит с записью (типа boost::weak_ptr) на карте, срок действия weak_ptr которой истек. Соответствующая запись на карте автоматически удаляется? Ключ представляет собой целое число, а соответствующее значение — weak_ptr....
1135 просмотров
schedule 02.02.2023

Как доступы `weak_ptr` и `shared_ptr` атомарны
std::shared_ptr<int> int_ptr; int main() { int_ptr = std::make_shared<int>(1); std::thread th{[&]() { std::weak_ptr int_ptr_weak = int_ptr; auto int_ptr_local = int_ptr_weak.lock(); if (int_ptr_local)...
1585 просмотров

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

Как мне хранить список слабых указателей в фабричном классе?
В моем проекте есть класс Factory, который возвращает std::shared_ptr<MyClass> , если вызывается метод Create . Фабрика не является владельцем, но ведет список созданных объектов. Иногда фабрике необходимо перебрать созданные объекты,...
1236 просмотров
schedule 08.09.2022

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

Пустой слабый указатель в enable_shared_from_this
После публичного наследования enable_shared_from_this и инициализации объекта класса при вызове другой функции этого класса я все еще вижу пустой слабый указатель enable_shared_from_this_class при отладке в Visual Studio. Все существующие вопросы...
582 просмотров

Как уменьшить код реализации множества классов-оболочек?
Я разрабатываю библиотеку с некоторыми классами, назовем их C1, C2 and ... Cn . Каждый из этих классов реализует некоторые интерфейсы, то есть I1, I2, ... Im. (n > m). Отношения между объектами в библиотеке сложны, и я должен предоставить...
177 просмотров

Использование weak_ptr с циклическими ссылками
Поэтому мне довольно трудно понять, почему мы должны использовать weak_ptr , особенно с проблемами циклических ссылок, рассмотрим этот код: class B; //forward declaration class A { shared_ptr<B> b_ptr; public: void...
70 просмотров
schedule 20.04.2023

Есть ли контейнер С++, который может обрабатывать изменение методов хеширования/сравнения/равенства?
У меня есть класс, которым управляет std::shared_ptr . Этот класс имеет хеш и все операторы == , < и т.д. Для простоты предположим, что это класс int . Что мне нужно, так это реестр всех int , используемых в настоящее время, который не...
45 просмотров
schedule 20.05.2024

Понимание третьего примера Скотта Мейерса для std::weak_ptr
В последнем примере на странице 137 книги Effective Modern C++ показан сценарий структуры данных с объектами A , B и C , соединенными друг с другом через std::shared_ptr следующим образом: std::shared_ptr std::shared_ptr A...
198 просмотров
schedule 07.08.2023