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

C ++ - передача ссылок на std :: shared_ptr или boost :: shared_ptr
Если у меня есть функция, которая должна работать с shared_ptr , не было бы более эффективным передать ей ссылку на нее (чтобы избежать копирования объекта shared_ptr )? Каковы возможные побочные эффекты? Я предполагаю два возможных случая: 1)...
51993 просмотров

C ++: auto_ptr + форвардное объявление?
У меня есть такой класс: class Inner; class Cont { public: Cont(); virtual ~Cont(); private: Inner* m_inner; }; в .cpp конструктор создает экземпляр Inner с new , а деструктор delete его. Это работает очень хорошо. Теперь...
4462 просмотров

Boost Shared Pointer: одновременный доступ для чтения в нескольких потоках
У меня есть поток A, который выделяет память и назначает ее общему указателю. Затем этот поток порождает 3 других потока X, Y и Z и передает каждому копию общего указателя. Когда X, Y и Z выходят за рамки, память освобождается. Но есть ли...
1024 просмотров
schedule 24.06.2023

Shared_ptr Утверждение px != 0 не удалось
У меня есть довольно сложное многопоточное приложение (сервер), которое время от времени падает из-за утверждения: /usr/include/boost/smart_ptr/shared_ptr.hpp:418: T* boost::shared_ptr< <template-parameter-1-1> >::operator->() const...
47831 просмотров
schedule 24.12.2022

Слабый указатель на это в конструкторе
Я понимаю, что невозможно получить shared_ptr, вызвав shared_from_this() из конструктора класса, так как объект еще не создан. Однако возможно ли получить weak_ptr для объекта из конструктора? В некоторых сообщениях форума Boost, в которых...
4916 просмотров
schedule 01.10.2023

С ++ volatile требуется при вращении с помощью оператора boost :: shared_ptr bool ()?
Возможный дубликат: Когда использовать volatile с многопоточность? У меня есть два потока, ссылающихся на один и тот же boost::shared_ptr : boost::shared_ptr<Widget> shared; В потоке вращается, ожидая, пока другой...
1757 просмотров

вопросы относительно shared_from_this
У меня есть функция, которая принимает shared_ptr<MyClass> . В какой-то функции-члене memfun из MyClass мне нужно передать this этой функции. Но если я напишу void MyClass:memfun() { func(shared_ptr<MyClass>(this)) } Я...
11168 просмотров
schedule 17.01.2023

как использовать postThreadMessage для передачи структуры
Я хочу использовать средства очереди сообщений Windows для отправки структуры другому потоку. Но я обнаружил, что функция postthreadmessage предоставляет мне только два целочисленных параметра lparam и wparam для передачи аргументов, поэтому я решил...
2959 просмотров
schedule 26.04.2023

Выполняет ли std::tr1::shared_ptr взаимное исключение?
У меня есть класс, который содержит BYTE* , счетчик ссылок и CRITICAL_SECTION , который защищает их обоих от одновременного доступа. Я хочу заменить все это на std::tr1::shared_ptr<BYTE> . MSDN говорит, что: Несколько потоков...
421 просмотров
schedule 20.03.2022

Ошибки в std :: make_shared () при попытке сделать shared_ptr?
(Используя Visual Studio 2010) Я пытаюсь создать shared_ptr существующего класса в моем проекте (класс был написан за десять лет до того, как существовал std :: shared_ptr). Этот класс принимает неконстантный указатель на другой объект, его пустой...
12015 просмотров

typedef общий указатель, содержащий шаблонный класс
Предположим, у меня есть некоторый класс шаблона, объявленный вперед, и я хочу определить общий указатель на него. Как бы я это сделал? template<typename T> class Arg; typedef std::tr1::shared_ptr<Arg> ArgPtr; // Compiler error
2549 просмотров

Обобщение общих указателей и QSharedPointer::data() против shared_ptr::get()?
Я создал библиотеку Qt , построенную на устаревших абстракциях, таких как QSharedDataPointer и QSharedData . Поэтому, когда мне понадобился обычный общий указатель, имело смысл использовать QSharedPointer для согласованности. Сейчас я...
1187 просмотров
schedule 07.10.2022

Увеличьте функции async_ * и shared_ptr
Я часто вижу этот шаблон в коде, привязывая shared_from_this в качестве первого параметра к функции-члену и отправляя результат с помощью функции async_* . Вот пример из другого вопроса: void Connection::Receive() {...
10048 просмотров
schedule 16.02.2022

Один и тот же адрес, несколько shared_ptrs, enable_shared_from_this и настраиваемое средство удаления
Связано с Тот же адрес, несколько счетчиков shared_ptr , запрещено ли это стандартом C++? и множество других вопросов, связанных с несколькими объектами shared_ptr, указывающими на один и тот же объект, но не использующими общую структуру счетчика...
679 просмотров
schedule 04.05.2024

C++ - ошибка шаблона неспециализированного класса с shared_ptr
У меня есть класс Room, и он содержит вектор shared_ptrs для объектов Option, например: private: vector<shared_ptr<Option> > options; Но по какой-то причине, когда я строю, я получаю следующие ошибки: 'shared_ptr':...
4570 просмотров
schedule 05.06.2022

std::shared_ptr _BLOCK_TYPE_IS_VALID(pHead-›nBlockUse) при смене указателя
Когда эта функция запускается, я получаю ошибку утверждения отладки, как описано в заголовке строки sprite = spr; . Если я добавлю sprite.reset(); перед этим, он вылетит на строке с sprite.reset(); . Указатель хранится в другом месте, в static...
1299 просмотров

Сожительство boost::shared_ptr и std::shared_ptr
В какой-то момент я хочу использовать boost::log , но не могу передать std::shared_ptr в качестве параметра, потому что компилятор (VS2010) не может преобразовать его в boost::shared_ptr . Мне не очень нравится тот факт, что они чужие друг...
7355 просмотров
schedule 05.01.2024

Настройка std::shared_ptr или boost::shared_ptr для создания исключения при разыменовании NULL
У меня есть несколько проектов, которые широко используют boost::shared_ptr или std::shared_ptr (я могу достаточно скоро перейти на любую из этих реализаций, если для одного есть хороший ответ на этот вопрос, но не для другого). Реализация Boost...
2014 просмотров
schedule 10.01.2023

QSharedPointer и QObject::deleteLater
У меня есть ситуация, когда управляемый объект QSharedPointer сигнализирует о том, что он выполнил свою задачу и вскоре готов к удалению (после выполнения функция покинула функцию, испускающую мой сигнал readyForDeletion ). При работе с обычными...
5517 просмотров
schedule 17.09.2022

Как расширить контейнер списка значков C ++ для реализации поточно-ориентированной реализации с использованием мьютекса ускоренного обновления?
Я написал образец тестового кода, чтобы проверить функциональность использования мьютексов ускоренного обновления для реализации блокировки мьютексов чтения / записи над контейнером списка значков. У меня десять потоков, 5 - считыватели, 5 -...
1372 просмотров