Вопросы с тегом «smart-pointers»

Абстрактный тип данных, который имитирует указатель, обеспечивая при этом дополнительные функции, такие как автоматическая сборка мусора или проверка границ.

228
Какой тип указателя мне использовать, когда?

Итак, в прошлый раз, когда я писал на С ++, std::auto_ptrвсе, что было доступно в std lib, boost::shared_ptrбыло в ярости. Я действительно никогда не смотрел на другие типы улучшенных умных указателей. Я понимаю, что C ++ 11 теперь предоставляет некоторые из типов boost, но не все. Так есть ли у...

220
умные указатели (повышение) объяснил

В чем разница между следующим набором указателей? Когда вы используете каждый указатель в рабочем коде, если вообще? Примеры будут оценены! scoped_ptr shared_ptr weak_ptr intrusive_ptr Вы используете повышение в производственном...

193
RAII и умные указатели в C ++

На практике с C ++, что такое RAII , что такое интеллектуальные указатели , как они реализованы в программе и каковы преимущества использования RAII с интеллектуальными...

185
std :: auto_ptr в std :: unique_ptr

С появлением нового стандарта (и частей, уже доступных в некоторых компиляторах), новый тип std::unique_ptrдолжен заменить его std::auto_ptr. Их использование в точности совпадает (поэтому я могу выполнить глобальный поиск / замену в моем коде (не то, чтобы я это делал, но если бы я это сделал))...

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

У меня проблемы с пониманием использования умных указателей в качестве членов класса в C ++ 11. Я много читал об умных указателях и думаю, что понимаю, как unique_ptrи shared_ptr/ или weak_ptrработаю в целом. То, что я не понимаю, является реальным использованием. Кажется, что все рекомендуют...

156
Почему библиотеки и фреймворки C ++ никогда не используют умные указатели?

Я прочитал в нескольких статьях, что сырые указатели почти никогда не должны использоваться. Вместо этого они всегда должны быть заключены в интеллектуальные указатели, будь то область видимости или общие указатели. Однако я заметил, что фреймворки, такие как Qt, wxWidgets и библиотеки, такие как...

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

Я просматривал исходный код Clang и нашел этот фрагмент: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Зачем мне std::moveэто std::shared_ptr? Есть ли смысл передавать право собственности на общий ресурс? Почему бы мне...

121
Какие реализации смарт-указателя C ++ доступны?

Сравнение, плюсы, минусы и когда использовать? Это побочный продукт ветки сборки мусора, где то, что я считал простым ответом, вызвало много комментариев о некоторых конкретных реализациях интеллектуальных указателей, поэтому казалось, что стоит начать новый пост. В конечном итоге вопрос...

114
Умные указатели: кому принадлежит объект? [закрыто]

Трудно сказать, о чем здесь спрашивают. Этот вопрос неоднозначный, расплывчатый, неполный, чрезмерно широкий или риторический, и на него нельзя разумно ответить в его нынешней форме. Чтобы прояснить этот вопрос и снова открыть его, посетите Справочный центр . Закрыт 8 лет назад . С ++ - это все о...

103
Где shared_ptr?

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

102
Сколько накладных расходов на интеллектуальные указатели по сравнению с обычными указателями в C ++?

Сколько накладных расходов на интеллектуальные указатели по сравнению с обычными указателями в C ++ 11? Другими словами, будет ли мой код медленнее, если я использую интеллектуальные указатели, и если да, то насколько медленнее? В частности, я спрашиваю о C ++ 11 std::shared_ptrи std::unique_ptr....

95
Как вернуть интеллектуальные указатели (shared_ptr) по ссылке или по значению?

Допустим, у меня есть класс с методом, который возвращает shared_ptr. Каковы возможные преимущества и недостатки возврата по ссылке или по значению? Две возможные подсказки: Раннее разрушение объекта. Если я возвращаю shared_ptrссылку by (const), счетчик ссылок не увеличивается, поэтому я рискую...

93
Передача shared_ptr <Derived> как shared_ptr <Base>

Каков наилучший способ передать a shared_ptrпроизводного типа функции, которая принимает shared_ptra базового типа? Я обычно передаю shared_ptrs по ссылке, чтобы избежать ненужной копии: int foo(const shared_ptr<bar>& ptr); но это не сработает, если я попытаюсь сделать что-то вроде int...

89
shared_ptr магия :)

Мы с мистером Лидстремом поссорились :) Г-н Лидстрём утверждает, что конструкция shared_ptr<Base> p(new Derived);не требует наличия виртуального деструктора в Base: Армен Цирунян : «Правда? Будет ли shared_ptr правильно очищаться? Не могли бы вы в этом случае продемонстрировать, как этот...