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

Являются ли структуры данных подходящим местом для shared_ptr?
Я занимаюсь реализацией бинарного дерева на С++. Традиционно у меня был бы указатель влево и указатель вправо, но ручное управление памятью обычно заканчивается плачевно. Что приводит меня к моему вопросу... Являются ли структуры данных...
1198 просмотров
schedule 23.11.2022

Для чего используется shared_ptr от boost (shared_ptr ‹Y› const & r, T * p)?
boost::shared_ptr имеет необычный конструктор template<class Y> shared_ptr(shared_ptr<Y> const & r, T * p); и я немного озадачен тем, для чего это может быть полезно. В основном он делит собственность с r , но .get()...
2454 просмотров
schedule 26.06.2022

shared_ptr, подписка, деструктор
Я использую указатели Boost/shared_ptr в своем приложении. Когда последняя ссылка на объект будет освобождена, shared_ptr удалит этот объект для меня. Объекты в приложении подписываются на события в центральном расположении приложения, аналогично...
903 просмотров

Каково ваше соглашение для определения типа shared_ptr?
Я переключаюсь между соглашениями об именах для определения типа шаблона boost::shared_ptr. Например: typedef boost::shared_ptr<Foo> FooPtr; Прежде чем остановиться на соглашении, я хотел бы посмотреть, что используют другие. Какова...
24715 просмотров
schedule 03.06.2024

shared_ptr как член класса
Общепринято объявлять содержащиеся объекты как указатели на этот класс, в то время как «упреждающее объявление» их в заголовочном файле. Это сделано для того, чтобы уменьшить физические зависимости в коде. Например class B; // forward...
8804 просмотров
schedule 10.05.2024

intrusive_ptr: Почему не предоставлен общий базовый класс?
Для boost::intrusive_ptr требуется intrusive_ptr_add_ref и intrusive_ptr_release необходимо определить. Почему не предоставлен базовый класс, который будет это делать? Вот пример: http://lists.boost.org/Archives/boost/2004/06/66957.php...
2954 просмотров

Пользовательский (пул) распределитель с усилением shared_ptr
Я хочу, чтобы объекты, управляемые shared_ptr, выделялись из пула, скажем, интерфейса Boost's Pool, как этого можно достичь?
8449 просмотров
schedule 03.11.2023

typedef boost::shared_ptr‹MyJob› Ptr; или #define Ptr boost::shared_ptr
Я только начал работать над новой кодовой базой, где каждый класс содержит определение типа shared_ptr ( похоже на это ), например: typedef boost::shared_ptr<MyClass> Ptr; Является ли единственная цель сохранить ввод boost::shared_ptr?...
1521 просмотров
schedule 24.02.2023

shared_ptr: ужасная скорость
При сравнении двух вариантов pointerclassic и shared_ptr я был удивлен значительным увеличением скорости работы программы. Для тестирования был использован алгоритм инкрементальной вставки 2D Делоне. Настройки компилятора: VS 2010 (выпуск)...
36348 просмотров

вопрос о назначении с помощью boost::shared_ptr (по сравнению с функцией reset())
Извините, если где-то на это явно дан ответ, но меня немного смущает документация по повышению и статьи, которые я читал в Интернете. Я вижу, что я могу использовать функцию reset() для освобождения памяти в shared_ptr (при условии, что счетчик...
7982 просмотров
schedule 02.02.2023

Почему у shared_ptr нет виртуального дескруктора? (и как мне обойти это?)
Я хотел сделать специальную версию shared_ptr , которая выполняла бы определенные операции при создании или уничтожении, но мои планы, похоже, рушатся из-за осознания того, что деструктор shared_ptr не является виртуальным, а это означает, что...
1401 просмотров
schedule 15.01.2023

Управление общими ресурсами в многопоточном приложении shared_ptr?
Мне нужно поделиться BLOB в многопоточном приложении, и в настоящее время я изучаю подход shared_ptr/weak_ptr, но я не совсем уверен, что он правильный. Существует рабочий поток, который создает класс ресурсов (новый CResource). CResource может...
626 просмотров
schedule 24.05.2023

Xerces-c и shared_ptrs
Я новичок в концепции shared_ptr и пытался перестроить свою программу таким образом, чтобы она использовала интеллектуальные указатели вместо обычных. Я пытаюсь использовать shared_ptr с Xerces-c, и у меня возникают проблемы с инициализацией моего...
496 просмотров
schedule 28.05.2023

семантика boost::shared_ptr (копирование)
Я просто хотел иметь свежую пару глаз, что приведенный ниже код верен в этом: Указатели, содержащиеся в объекте trifoo (хранящемся в ptr_vector), являются общими указателями f, g, h. Кроме того, каков результат копирования shared_ptr в...
4415 просмотров
schedule 04.07.2022

Потоки общей модели с указателями
У меня есть вектор указателей на объекты, созданные с помощью new . Несколько потоков получают безопасный доступ к этому вектору с помощью различных операций получения/набора. Однако поток может удалить один из объектов, и в этом случае указатель...
444 просмотров
schedule 24.08.2022

Рефакторинг класса шаблона С++ на основе типа шаблона
Данный класс Foo template <typename T> class Foo { public: ...other methods.. void bar() { ... m_impl.doSomething(); ... } void fun() { ... m_impl.doSomethingElse(); ... } void fubar() { ......
516 просмотров
schedule 07.07.2022

Макрос SWIG_SHARED_PTR с шаблонным классом
Я использую SWIG с указателями общего доступа для создания расширений Python. Моя текущая проблема заключается в том, что макрос SWIG_SHARED_PTR, похоже, по-другому работает с шаблонными классами. Я приведу два примера, один без шаблонов (пример), а...
926 просмотров
schedule 19.10.2022

Есть ли способ безопасно удалить QList неуникальных указателей на MyObject?
Я знаю, что такой вопрос задавали до смерти, но я хотел бы знать, есть ли способ сделать то, что я указал в вопросе, без использования указателей библиотеки Boost и т. д. В основном у меня есть следующий фрагмент код очистки, который удаляет...
1185 просмотров
schedule 25.09.2022

Преобразование из boost::shared_ptr в std::shared_ptr?
У меня есть библиотека, которая внутренне использует версию Boost shared_ptr и предоставляет только ее. Однако для моего приложения я хотел бы использовать std::shared_ptr , когда это возможно. К сожалению, нет прямого преобразования между двумя...
11044 просмотров
schedule 06.09.2022

Что быстрее в Visual C ++ 2010 - std :: shared_ptr или boost :: shared_ptr?
Кто-нибудь тестировал это в сборках в режиме выпуска? Или реализации настолько похожи, что нет существенной разницы? Меня интересует скорость: Создайте новый shared_ptr Создайте копию shared_ptr Отмените ссылку на указатель, чтобы...
1539 просмотров