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

Ссылка подсчитала класс интеллектуального указателя, реализующий совместное владение
13 отв.

Когда используется std:: weak_ptr?

Я начал изучать интеллектуальные указатели С++ 11, и я не вижу полезного использования std::weak_ptr. Может ли кто-нибудь сказать мне, когда std::weak_ptr полезно/необходимо?
20 авг. '12 в 2:00
16 отв.

Как я могу вызвать:: std:: make_shared в классе с только защищенными или частными конструкторами?

У меня есть этот код, который не работает, но я думаю, что цель понятна: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: ...
16 нояб. '11 в 8:11
6 отв.

Разница в make_shared и normal shared_ptr в С++

std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); В нем есть много сообщений google и stackoverflow, но я не могу понять, почему make_shared более эффективен, чем напряму...
03 янв. '14 в 5:44
2 отв.

shared_ptr в массив: следует ли его использовать?

Просто небольшой запрос относительно shared_ptr. Хорошо ли использовать shared_ptr для массива? Например, shared_ptr<int> sp(new int[10]); Если нет, то почему бы и нет? Одна из причин, о которых я уже знаю, не может увеличивать/уменьшать з...
25 окт. '12 в 8:13
2 отв.

Использование интеллектуальных указателей для членов класса

У меня возникли проблемы с пониманием использования интеллектуальных указателей как членов класса в С++ 11. Я много читал о умных указателях, и я думаю, что понимаю, как работают unique_ptr и shared_ptr/weak_ptr. То, что я не понимаю, - это реальное...
27 марта '13 в 1:46
6 отв.

Почему работает std:: shared_ptr <void>

Я нашел некоторый код, используя std:: shared_ptr для выполнения произвольной очистки при завершении работы. Сначала я думал, что этот код не может работать, но затем я попробовал следующее: #include <memory> #include <iostream> #include...
06 мая '11 в 18:13
17 отв.

С++ - передача ссылок на std:: shared_ptr или boost:: shared_ptr

Если у меня есть функция, которая должна работать с shared_ptr, не было бы более эффективным передать ей ссылку на нее (чтобы избежать копирования объекта shared_ptr)? Каковы возможные плохие побочные эффекты? Я предполагаю два возможных случая: 1) ...
29 нояб. '08 в 17:27
3 отв.

std:: shared_ptr безопасность потока объясняется

Я читаю http://gcc.gnu.org/onlinedocs/libstdc++/manual/shared_ptr.html, и некоторые проблемы безопасности потока все еще не ясны для меня: Стандарт гарантирует, что подсчет ссылок обрабатывается поточно-безопасным и независимым от платформы, не так...
03 февр. '12 в 14:19
4 отв.

Где shared_ptr?

Я так расстроен сейчас, после нескольких часов, пытаясь найти, где находится shared_ptr. Ни один из примеров, которые я вижу, не показывает полный код для включения заголовков для shared_ptr (и работы). Простое указание std, tr1 и <memory> не ...
27 мая '10 в 5:58
5 отв.

Зачем мне std:: переместить std:: shared_ptr?

Я просматривал исходный код Clang, и я нашел этот фрагмент: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Почему я хочу std::move a std::shared_ptr? Есть ли какая-...
26 янв. '17 в 13:11
3 отв.

Должен ли я передавать shared_ptr по ссылке?

Каковы наилучшие методы для передачи shared_ptr? В настоящее время я передаю аргументы функции shared_ptr следующим образом: void function1( shared_ptr<TYPE>& value );
05 дек. '11 в 15:40
2 отв.

Почему shared_ptr <void> юридический, а unique_ptr <void> плохо сформирован?

Вопрос действительно соответствует названию: мне любопытно узнать, какова техническая причина этой разницы, но также и обоснование? std::shared_ptr<void> sharedToVoid; // legal; std::unique_ptr<void> uniqueToVoid; // ill-formed;
02 сент. '16 в 12:24
6 отв.

Пример использования shared_ptr?

Привет, я задал сегодня вопрос о Как вставить различные типы объектов в один и тот же векторный массив, и мой код в этом вопросе был gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classes ...
13 авг. '10 в 15:48
4 отв.

static_cast с boost:: shared_ptr?

Что эквивалентно static_cast с boost::shared_ptr? Другими словами, как мне переписать следующий Base* b = new Derived(); Derived* d = static_cast<Derived*>(b); при использовании shared_ptr? boost::shared_ptr<Base> b(new Derived());...
09 марта '09 в 5:47
3 отв.

Разница между `const shared_ptr <T>` и `shared_ptr <const T>`?

Я пишу метод доступа для общего указателя на С++, который выглядит примерно так: class Foo { public: return_type getBar() const { return m_bar; } private: boost::shared_ptr<Bar> m_bar; } Таким образом, чтобы поддерживать...
22 июля '13 в 20:05