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

enable_shared_from_this - пустой внутренний слабый указатель?
Я использую enable_shared_from_this<Base> , а затем наследую от Base . При попытке использовать shared_from_this() в конструкторе Derived (не в списке инициализаторов) я получаю исключение. Оказывается, внутренний слабый указатель равен...
7956 просмотров
schedule 29.10.2021

преобразовать shared_ptr в auto_ptr?
Мне нужно получить auto_ptr из shared_ptr в моем коде. Я могу сделать обратную операцию - преобразовать auto_ptr в shared_ptr, поскольку у shared_ptr есть такой конструктор: template<class Y> explicit shared_ptr(std::auto_ptr<Y> &...
2848 просмотров
schedule 10.10.2021

Если я хочу использовать std :: shared_ptr, какой заголовок включить?
В c ++ 0x shared_ptr будет перемещен из tr1 в std. Итак, какой заголовок включить, чтобы его получить? Я использую g ++ 4.5 (ubuntu 10.10)
16811 просмотров
schedule 24.10.2021

использование std :: tr1 :: shared_ptr в качестве внутреннего механизма для подсчета ссылок
Насколько безопасно и правильно использовать std :: tr1 :: shared_ptr, как в примере кода ниже, для подсчета ссылок? (это всего лишь конкретный образец, класс может содержать что угодно (void *) вместо ФАЙЛА *) class File { public: File(const...
442 просмотров

Умный указатель без общего доступа с неполными типами
Существует ли стандартный класс указателя (или Boost), который не является общим указателем, который работает с неполными типами? Я просмотрел стандарт C ++ 11 и библиотеку boost и не нашел, хотя это кажется очень полезным типом. Например, я хотел...
3018 просмотров
schedule 01.11.2021

Некоторые вопросы о shared_ptr, scoped_ptr и shared_array
У меня есть вопросы о интеллектуальных указателях, реализованных в библиотеке boost. Единственное различие между shared_ptr и scoped_ptr в том, что scoped_ptr не имеет конструктора копирования, а shared_ptr имеет его? Должен ли я использовать...
3771 просмотров
schedule 03.11.2021

Используете googlemock EXPECT_CALL с shared_ptr?
У меня есть тест, который отлично работает с необработанным указателем, но мне не удается заставить его работать с std::shared_ptr . Класс такой: class MyClass { MyClass(SomeService *service); void DoIt(); } Мой тестовый код...
17690 просмотров
schedule 18.10.2021

Использование luabind и std :: shared_ptr с наследованием
У меня есть API (конкретная библиотека графического интерфейса), который во многом полагается на std::shared_ptr , т.е. они часто используются в качестве параметров функции и хранятся в других объектах. Например, виджеты-контейнеры, такие как...
2594 просмотров
schedule 01.11.2021

Перегрузки оператора присваивания std :: shared_ptr или std :: unique_ptr
Я не вижу причины, по которой у них нет перегрузки оператора присваивания для простых старых указателей того типа, для которого они созданы. Если цель сделать интерфейс интеллектуальных указателей как можно ближе к простым старым указателям, то...
2774 просмотров
schedule 28.10.2021

Метод std :: atomic load уменьшает счетчик ссылок при использовании с std :: shared_ptr
Я хотел бы использовать std::atomic<std::shared_ptr> в своем коде, чтобы можно было атомарно обновлять shared_ptr, но у меня проблема с доступом к shared_ptr. Метод load () в атомарном элементе, похоже, уменьшает счетчик ссылок на shared_ptr,...
3027 просмотров
schedule 16.09.2021

Должен ли я использовать weak_ptr.lock () только для проверки, указывает ли он на действительный объект?
Кажется неэффективным создавать временный shared_ptr только для того, чтобы увидеть, указывает ли weak_ptr на действительный объект. Я не хочу даже обращаться к объекту. Это потому, что у меня есть функция, которая возвращает weak_ptr из вектора...
8566 просмотров
schedule 30.09.2021

Перемещение std :: shared_ptr приводит к сбою программы
Мне нужно создать небольшую оболочку OpenGL для работы. Я стараюсь избегать написания конструкторов копирования и присваивания копий для всех моих классов. Единственный способ быть по-настоящему ленивым и никогда не писать копии - это использовать...
1706 просмотров
schedule 07.10.2021

программа не распознает умный указатель
Что касается использования shared_pointers в программе на C ++, я объявил #include <memory> , а затем вызвал следующее std::shared_ptr<int>(new int(5)) , он отказывается компилировать, говоря, что ошибка: 'shared_ptr' не является...
765 просмотров
schedule 14.09.2021

Есть ли ситуация, в которой я бы не стал использовать std :: make_shared?
Судя по проведенному мною исследованию, предпочтительным способом является std::make_shared строительства std::shared_ptr . В частности, потому что: Он выполняет только одно выделение памяти по сравнению с использованием new , которое...
458 просмотров

Почему std :: shared_ptr не принимает мой объект функции удаления?
У меня проблема с * передачей функтора удаления в std :: smart_ptr *. Я впервые пробовал что-то подобное, так что, возможно, я упускаю из виду что-то очень простое ... Вот как выглядит мой класс функторов; #pragma once; #ifndef...
469 просмотров
schedule 29.11.2021

Копирование содержимого boost :: shared_ptr - есть ли способ?
Я хочу скопировать содержимое boost :: shared_ptr, которое я получаю в функции void virtual Add(const T_Value& value) { push_back(value); if (_limit != -1 && int(size()) > _limit)...
348 просмотров
schedule 18.11.2021

Исключение необработанного исключения в деструкторе boost shared_ptr
У меня есть следующий код, который случайным образом приводит к сбою моего приложения: for(map<_type, boost::shared_ptr<CRowHeaderEx<_type> > >::iterator itr = m_RowMap.begin(); itr != m_RowMap.end(); ++itr) {...
2242 просмотров
schedule 03.11.2021

воссоздать (переназначить) std :: shared_ptr или std :: unique_ptr
Я хочу иметь управляемый указатель (уникальный или общий) и иметь возможность переназначить его новым фрагментом памяти, а также быть уверенным, что старая память удаляется (как и должно быть) с помощью управляемых указателей. struct MyStruct {...
1425 просмотров
schedule 25.10.2021

Визуальный течеискатель с std :: shared_ptr
Я относительно новичок в shared_ptr. Я использую визуальный детектор утечек и получаю ошибки в конце выполнения, когда даю мне следующий код в качестве утечки памяти: std::shared_ptr<the_type>(new the_type(the_parameter)) Должен ли я...
811 просмотров

Конструктор копирования для класса с членами данных shared_ptr?
Я знаю, как написать конструктор копирования, когда у вас есть необработанные элементы данных указателя в классе, но как написать конструктор копирования, когда вы управляете ими с помощью shared_ptr? Есть ли функция copy() или clone() , которую...
12103 просмотров