Публикации по теме 'shared-ptr'
Примечания по C++: #1
Время от времени, когда я пишу код на C++, мне любопытно, как поведет себя C++ при написании кода определенным образом. Большую часть времени в Compiler-Explorer, замечательном ресурсе, я провожу пробу этих различных комбинаций. Много раз я уже знал ответ, однако бывают случаи, когда C++ меня удивляет.
Мой план состоит в том, чтобы составлять заметки, надеюсь, вести записи о том, что я пробовал, и пересматривать их в будущем, если это будет необходимо.
Рассмотрим код ниже:..
Вопросы по теме 'shared-ptr'
умные указатели + это считается вредным?
В проекте C ++, который использует интеллектуальные указатели, такие как boost::shared_ptr , какова хорошая философия проектирования в отношении использования « this »?
Считают, что:
Опасно хранить необработанный указатель, содержащийся в...
4754 просмотров
schedule
21.09.2022
константа shared_ptr в shared_ptr
Как можно преобразовать shared_ptr, указывающий на константный объект, в shared_ptr, указывающий на неконстантный объект. Я пытаюсь сделать следующее:
boost::shared_ptr<const A> Ckk(new A(4));
boost::shared_ptr<A> kk=const_cast<...
18616 просмотров
schedule
24.09.2022
Могу ли я получить необработанный указатель из weak_ptr boost?
Можно ли получить необработанный указатель из boost::weak_ptr? Shared_ptr Boost имеет метод get() и оператор «->». Есть ли какое-то объяснение тому, что у weak_ptr нет такой же функциональности?
5983 просмотров
schedule
27.07.2023
Безумный векторный итератор C++
Я заявляю:
typedef std::tr1::shared_ptr<ClassA> SharedPtr;
А потом:
std::vector<SharedPtr> mList;
А также:
typedef std::vector<SharedPtr>::iterator ListIterator;
Возврат mList.size() равен 0, но когда я...
1154 просмотров
schedule
13.02.2023
Как освободить ссылку на аргументы привязки boost :: signal2 :: signal keep?
Я обнаружил, что некоторые объекты в моей программе на C ++ не могут быть выпущены из-за того, что Signal2 of boost не выпустит эти аргументы в объекте, созданном с помощью boost :: bind. Вот код для воспроизведения проблемы:
#include...
1432 просмотров
schedule
18.07.2022
Лучший способ управлять владением памятью в С++? Общие указатели или другие механизмы?
В новом фрагменте кода у меня есть несколько разных классов, которые ссылаются друг на друга. Что-то вроде этого (это не моя реальная ситуация, а пример чего-то подобного):
class BookManager
{
...
};
class Book
{
public:...
742 просмотров
schedule
17.05.2022
Какова наилучшая стратегия для определения общих указателей?
У меня есть быстрый вопрос относительно использования typedefs для длинных шаблонов. Суть: я оказался в какой-то затруднительной ситуации — похоже, нет подходящего места для размещения определений типов, кроме локальных по отношению к клиентским...
5037 просмотров
schedule
13.05.2023
shared_from_this() из другого потока (функция потока-члена)
В моем коде я использую boost::threads , и у меня есть класс, который запускает поток через функцию-член с именем fnThread() . В этом fnThread() я хочу создать shared_from_this() и передать его слушающим сторонам с сигналом. Но строка...
2702 просмотров
schedule
06.03.2023
Объект Gdiplus::Image и boost::shared_ptr
У меня есть простой класс кеша изображений в моем приложении MFC, чтобы отслеживать изображения, загружаемые из файловой системы:
typedef boost::shared_ptr<Gdiplus::Image> ImagePtr;
typedef std::map<std::string, ImagePtr> ImageMap;...
444 просмотров
schedule
30.01.2023
shared_ptr и weak_ptr различия
Я читаю книгу Скотта Мейерса «Эффективный C ++». Было упомянуто, что tr1::shared_ptr и tr1::weak_ptr действуют как встроенные указатели, но они отслеживают, сколько tr1::shared_ptrs указывает на объект.
Это называется подсчетом ссылок. Это...
56088 просмотров
schedule
19.09.2022
Обертывание std :: vector из boost :: shared_ptr в SWIG для Python
РЕДАКТИРОВАТЬ: Моя ошибка решена; объяснил в моем ответе.
У меня есть это:
std::vector < boost::shared_ptr < Entity > > entities;
и пытаюсь выставить через SWIG вот так:
%include "boost_shared_ptr.i"
%include...
2754 просмотров
schedule
16.04.2024
pimpl: избегать указателя на указатель с помощью pimpl
В этом вопросе я спросил "pimpl: shared_ptr или unique_ptr" . убежден, что правильным использованием идиомы pimpl является использование unique_ptr , а не shared_ptr . Он должен действовать на пользователя так, как будто указателя нет вообще,...
955 просмотров
schedule
10.05.2022
С++ 0x std::shared_ptr против boost::shared_ptr
У меня есть код С++, который активно использует shared_ptr и STL. Общий заголовок говорит
#include<boost/shared_ptr.hpp>
using boost::shared_ptr; // for shared_ptr
using namespace std; // for STL
Сейчас я хотел переключиться на...
4135 просмотров
schedule
19.09.2022
BOOST_FOREACH Итерация над boost::shared_ptr‹list›
Я делаю что-то похожее на этот пункт Правильное использование BOOST_FOREACH?
Однако мой возвращенный список завернут в boost::shared_ptr. Если я не назначу список переменной перед циклом BOOST_FOREACH, я получу сбой во время выполнения,...
2952 просмотров
schedule
27.09.2022
Почему enable_shared_from_this встраивает слабый указатель вместо непосредственного встраивания счетчика ссылок?
Помощник enable_shared_from_this содержит слабый указатель, который устанавливается при создании общего указателя на объект. Это означает, что есть счетчик ссылок (выделенный отдельно или вместе с объектом с помощью make_shared ) и дополнительный...
1276 просмотров
schedule
16.03.2023
boost :: shared_ptr parent ‹-› дочернее общение
Я использую boost :: shared_ptr для организации данных указателя в моем игровом движке.
Я попытался привести очень короткий пример, чтобы показать свою проблему:
class CSceneNode
{
public:
CSceneNode(CScene *p) : parent(p) {}
void...
800 просмотров
schedule
21.09.2022
В чем разница между автоматическими указателями и общими указателями в C ++
Я слышал, что автоматические указатели владеют своим объектом, тогда как общие указатели могут иметь много объектов, указывающих на них. Почему бы нам не использовать общие указатели все время.
В отношении интеллектуальных указателей люди...
10355 просмотров
schedule
03.08.2023
Определение того, принадлежит ли объект интеллектуальному указателю
У меня есть класс, производный от enable_shared_from_this, и метод, который возвращает общий указатель, вызывая shared_from_this (). Я хотел бы в этом методе определить, принадлежит ли объект shared_ptr, а если не бросить. Я пробовал что-то вроде...
809 просмотров
schedule
22.10.2022
Почему определение boost :: shared_ptr для шаблонного класса ведет себя иначе, чем boost :: shared_ptr для не шаблонного класса
Я пытался интегрировать boost :: share_ptr в пару шаблонных классов, которые изначально были получены из найденного мной примера boost :: asio. Когда я определяю тип в одном классе, который является общим :: ptr этого класса. Кажется, я не могу...
1200 просмотров
schedule
07.06.2023
Boost Asio — обработка резольвера и сокетов с помощью shared_ptr
У меня есть класс, который должен иметь возможность отправлять сообщения по TCP. Вот упрощенный интерфейс:
class CommandScreenshot : public CameraCommand
{
public:
CommandScreenshot();
~CommandScreenshot();
void...
2052 просмотров
schedule
07.10.2022