Вопросы по теме 'weak-ptr'
shared_ptr и weak_ptr различия
Я читаю книгу Скотта Мейерса «Эффективный C ++». Было упомянуто, что tr1::shared_ptr и tr1::weak_ptr действуют как встроенные указатели, но они отслеживают, сколько tr1::shared_ptrs указывает на объект.
Это называется подсчетом ссылок. Это...
56088 просмотров
schedule
19.09.2022
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 просмотров
schedule
19.05.2022
Владение общими ресурсами с использованием std::weak_ptr
Мне интересно, как (используя С++ 11 и, надеюсь, с обратными (boost или TR1) совместимыми типами интеллектуальных указателей) достичь:
Один экземпляр класса ( ModelController ) владеет ресурсом ( InputConsumer ), а другой компонент ( InputSender ,...
524 просмотров
schedule
13.10.2022
о состоянии гонки weak_ptr
1. я опубликовал вопрос ( о потокобезопасности weak_ptr ) несколько дней назад, и у меня есть другой связанный вопрос сейчас. Если я сделаю что-то подобное, будет ли введено условие гонки как g_w в приведенном выше примере? (Моя платформа - ms...
755 просмотров
schedule
29.01.2023
Гарантируется ли, что 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 просмотров
schedule
04.12.2022
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 просмотров
schedule
22.03.2023
Как уменьшить код реализации множества классов-оболочек?
Я разрабатываю библиотеку с некоторыми классами, назовем их C1, C2 and ... Cn . Каждый из этих классов реализует некоторые интерфейсы, то есть I1, I2, ... Im. (n > m). Отношения между объектами в библиотеке сложны, и я должен предоставить...
177 просмотров
schedule
18.02.2023
Использование 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