0
ответов

Передача права собственности на функцию с помощью std ::unique _ptr

Я пытаюсь научиться использовать умные указатели и понимать право собственности. Когда я передаю auto _ptr функции по значению, функция становится исключительным владельцем этого указателя. Итак, когда функция...
вопрос задан: 16 July 2012 00:29
0
ответов

Следует ли использовать std::unique_ptr в переменной-члене std::vector в моем классе?

Представьте класс C, у которого есть переменная-член m_MyList типа std::vector, в которой я хочу хранить объекты типа MyClass. C имеет две функции, которые добавляют или удаляют объекты в m_MyList. m_MyList должен...
вопрос задан: 14 July 2012 17:59
0
ответов

Должен ли я использовать умный указатель?

У меня есть класс, подобный следующему узлу класса :{ общедоступный :узел *родитель; std ::list дочерние элементы; }; Должен ли я использовать интеллектуальный указатель вместо необработанных указателей? Почему? Если да, то какие...
вопрос задан: 2 July 2012 09:40
0
ответов

Модульное тестирование, имитация и unique_ptr

Существует тестируемый класс, который в настоящее время принимает в своем конструкторе unique_ptr< Interface >&&, чтобы выразить, что он хочет единолично владеть реализацией интерфейса. ...
вопрос задан: 18 June 2012 09:43
0
ответов

Динамическое приведение для unique_ptr

Как и в случае с Boost, C++11 предоставляет некоторые функции для приведения shared_ptr: std::static_pointer_cast std:: dynamic_pointer_cast std::const_pointer_cast Однако мне интересно, почему существуют ...
вопрос задан: 12 June 2012 07:33
0
ответов

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

Допустим, у меня есть класс с методом, возвращающим shared_ptr. Каковы возможные преимущества и недостатки возврата по ссылке или по значению? Две возможные подсказки: Раннее уничтожение объекта....
вопрос задан: 17 May 2012 21:09
0
ответов

Интеллектуальные указатели и деструктор

Я хотел бы знать, нужно ли мне писать деструктор в классах, когда я больше не использую необработанные указатели? Просто увеличьте умные указатели.
вопрос задан: 29 April 2012 17:51
0
ответов

Должен ли я использовать интеллектуальные указатели для всего и забыть о классических обычных указателях?

Я давно использую C ++ и очень хорошо знаю, как тщательно распределять и освобождение памяти, особенно не забывая удалять неиспользуемые экземпляры. Так вот, я недавно использовал ...
вопрос задан: 29 April 2012 17:40
0
ответов

можно ли удалить интеллектуальный указатель вручную?

Это может быть глупый вопрос, но я просто не уверен в ответе. Следующий код читает файл, и для каждой строки файла создается интеллектуальный указатель с помощью «new». Если умный указатель будет ...
вопрос задан: 29 April 2012 17:39
0
ответов

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

Я читал в нескольких статьях, что необработанные указатели почти никогда не должны использоваться. Вместо этого они всегда должны быть обернуты внутри интеллектуальных указателей, независимо от того, являются ли они указателями области действия или общими
вопрос задан: 26 April 2012 13:31
0
ответов

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

Я написал функцию, которая загружает байты из файла и возвращает структуру FileData, содержащую буфер байтов и длину буфера. Я хочу, чтобы буфер удалялся, как только он...
вопрос задан: 13 April 2012 00:26
0
ответов

Утечки C++ в случае исключения даже при использовании интеллектуальных указателей

Я новичок в мире интеллектуальных указателей. Я читал, и все они заявили, что интеллектуальные указатели избегают утечки памяти, даже если программа завершится после возникновения исключения. Я...
вопрос задан: 10 April 2012 20:47
0
ответов

Общие указатели на недействительные. Почему это работает?

Чтобы решить очень специфическую проблему в моем приложении, мне нужен общий указатель на выделенные данные, но для внешнего мира базовый тип данных должен оставаться скрытым. Я мог бы решить эту проблему, сделав ...
вопрос задан: 10 March 2012 04:23
0
ответов

Что произойдет, если объект, удерживаемый интеллектуальным указателем, будет удален в другом месте?

Этот вопрос всегда беспокоит меня, особенно когда я программирую с помощью Qt. Поскольку Qt использует деревья владения объектами, передавая указатель, например. через myBoostSharedPtr.get () может неявно передавать право собственности. ...
вопрос задан: 2 March 2012 23:13
0
ответов

unique_ptr operator =

std :: unique_ptr ptr; ptr = новый int [3]; // ошибка ошибка C2679: двоичный '=': не найден оператор, который принимает правый операнд типа 'int *' (или нет приемлемого ...
вопрос задан: 1 March 2012 22:49
0
ответов

Какой тип указателя я должен передать методу в C ++ 11?

Мне нужны два разных сценария: У вас есть shared_ptr У вас есть unique_ptr Хотя ответ может быть таким же. Рассмотрим метод, который использует указатель, но не предполагает владение: ...
вопрос задан: 15 February 2012 15:42
0
ответов

Почему реализации умных указателей в C++ хранят счетчик ссылок на куче вместе с указателем?

Читая Alexandrescu и wikipipidia, я вижу, что указатель и счетчик ссылок хранятся на куче. Затем упоминается, что подсчет ссылок неэффективен, так как счетчик должен быть выделен на ...
вопрос задан: 14 February 2012 19:46
0
ответов

Почему в t unique_ptr :: reset отсутствуют перегрузки, которые занимают удалитель?

Существует ли причина, по которой unique_ptr :: reset не имеет перегрузок, которые принимают const deleteer & amp; и & amp; & amp; & amp; сопоставить его конструкторы, которые принимают их в качестве второго аргумента? Сохраненный в ...
вопрос задан: 6 February 2012 21:11
0
ответов

идиома виртуального конструктора с интеллектуальными указателями

У меня есть иерархия полиморфных классов, скажем, абстрактный базовый класс формы вместе с его производными классами, например Прямоугольник, Круг и т.д. Следуя идиоме виртуального конструктора, я задавался вопросом, почему мы ...
вопрос задан: 15 January 2012 14:37
0
ответов

Плохая практика возвращать unique_ptr для сырого указателя, как семантика владения?

Я написал статический фабричный метод, который возвращает новый объект Foobar, заполненный из другого объекта данных. Недавно я был одержим семантикой владения и задаюсь вопросом, передаю ли я ...
вопрос задан: 3 January 2012 10:51
0
ответов

enable_shared_from_this - пустой внутренний слабый указатель?

Я использую enable_shared_from_this , а затем наследую от Base. При попытке использовать shared_from_this () в конструкторе Derived (не в списке инициализаторов) я получаю исключение. Оказывается, ...
вопрос задан: 19 December 2011 00:54
0
ответов

В чем разница между автоуказателями и общими указателями в C++

Я слышал, что автоуказатели владеют своим объектом, в то время как общие указатели могут иметь много объектов, указывающих на них. Почему бы нам не использовать общие указатели все время. В связи с этим, что такое умные ...
вопрос задан: 5 December 2011 12:31
0
ответов

Как передать shared_ptr на изменяемый объект в качестве параметра?

Я хочу передать объект по ссылке smart-pointer в функцию. Функция может изменить значение объекта по ссылке, но не может изменить саму ссылку. Есть два очевидных способа ...
вопрос задан: 4 December 2011 21:30
0
ответов

C++11: Заменить все несобственные сырые указатели на std::shared_ptr()?

С появлением std::unique_ptr испорченный std::auto_ptr наконец-то может быть отправлен на покой. Поэтому в течение последних нескольких дней я менял свой код, чтобы использовать умные указатели и устранить все ...
вопрос задан: 1 December 2011 09:56
0
ответов

C ++ 11 Smart Pointer Policies

Насколько я понимаю, в текущей спецификации C ++ 11 следует использовать: std :: unique_ptr <> для одного владельца (большую часть времени) {{1 }} std :: shared_ptr <> только когда в ...
вопрос задан: 1 December 2011 00:55
0
ответов

Конструктор копирования с интеллектуальным указателем

У меня есть класс с одним std :: unique_ptr в качестве члена класса. Мне было интересно, как правильно определить конструктор копирования, поскольку я получаю следующее сообщение об ошибке компилятора: error C2248: std :: ...
вопрос задан: 29 November 2011 19:46
0
ответов

c ++: std :: tr1 :: shared_ptr из этого

У меня есть следующий код: #include class Foo; typedef std :: tr1 :: shared_ptr pFoo_t; class DoSomething { public: static void doSomething (pFoo_t p) {printf ("выполнение ...
вопрос задан: 21 November 2011 14:38
0
ответов

Смешивание C ++ и Objective-C

Я используя C ++ в качестве основы приложения и Objective-C для графического интерфейса, это нормально. Но когда дело доходит до объединения этого кода в Objective-C ++ (файл .mm), у меня возникает несколько вопросов: 1. Могу ли я смешивать STL ...
вопрос задан: 17 November 2011 21:43
0
ответов

Поточно-безопасный интеллектуальный указатель чтения-записи в C ++, x86-64

Я разрабатываю некоторую свободную от блокировок структуру данных, и возникает следующая проблема. У меня есть поток писателя, который создает объекты в куче и обертывает их интеллектуальным указателем со счетчиком ссылок. У меня также много ...
вопрос задан: 4 November 2011 09:30
0
ответов

Почему бы просто не использовать статическую переменную в качестве счетчика ссылок для интеллектуального указателя

Когда я проверяю интеллектуальный указатель «расширенной» версии - улучшение заключается в добавлении счетчика ссылок - я вижу, что они используют некоторые «сложные» методы для счетчик ссылок, например полностью отдельный класс или ...
вопрос задан: 2 November 2011 16:42