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

std:: unique_ptr - это умный указатель, который сохраняет право собственности на объект через указатель. unique_ptr не может быть скопирован или назначен для копирования, два экземпляра unique_ptr не могут управлять одним и тем же объектом.
6 отв.

Как передать аргумент unique_ptr конструктору или функции?

Я новичок в перемещении семантики в С++ 11, и я не очень хорошо знаю, как обрабатывать параметры unique_ptr в конструкторах или функциях. Рассмотрим этот класс, ссылающийся на себя: #include <memory> class Base { public: typedef uniqu...
13 нояб. '11 в 22:58
5 отв.

Возврат unique_ptr из функций

unique_ptr<T> не позволяет создавать копии, вместо этого поддерживает семантику перемещения. Тем не менее, я могу вернуть unique_ptr<T> из функции и присвоить возвращаемое значение переменной. #include <iostream> #include <mem...
30 нояб. '10 в 20:44
7 отв.

Является ли std:: unique_ptr <T> необходимым для определения полного определения T?

У меня есть код в заголовке, который выглядит так: #include <memory> class Thing; class MyClass { std::unique_ptr< Thing > my_thing; }; Если я включаю этот заголовок в cpp, который не включает определение типа Thing, то это не к...
16 мая '11 в 3:11
6 отв.

make_unique и совершенная переадресация

Почему в стандартной библиотеке С++ 11 нет шаблона функции std::make_unique? Я нахожу std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); немного подробный. Разве не было бы намного лучше? auto p = std::make_unique<...
12 авг. '11 в 12:46
4 отв.

std:: auto_ptr в std:: unique_ptr

С появлением нового стандарта (и части, уже имеющиеся в некоторых компиляторах) новый тип std::unique_ptr должен быть заменен на std::auto_ptr. Является ли их использование точным совпадением (так что я могу сделать глобальный поиск/замену в моем к...
10 авг. '10 в 19:17
2 отв.

Почему я не могу push_back unique_ptr в вектор?

Что не так с этой программой? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny com...
19 июля '10 в 21:13
2 отв.

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

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

std:: unique_ptr с неполным типом не будет компилироваться

Я использую pimpl-idiom с std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; // defined elsewhere std::unique_ptr<window_impl> impl_; // won't compile }; Однако я получаю ошибку компиляции ...
31 марта '12 в 12:03
6 отв.

Как использовать пользовательский удаленный элемент с элементом std:: unique_ptr?

У меня есть класс с элементом unique_ptr. class Foo { private: std::unique_ptr<Bar> bar; ... }; Панель является сторонним классом, который имеет функцию create() и функцию destroy(). Если бы я хотел использовать std::unique_ptr с н...
27 сент. '13 в 17:31
6 отв.

Копировать конструктор для класса с unique_ptr

Как реализовать конструктор копирования для класса с переменной unique_ptr? Я рассматриваю только С++ 11.
16 апр. '13 в 9:21
2 отв.

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

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

Зачем использовать std :: make_unique в С++ 17?

Насколько я понимаю, С++ 14 ввел std::make_unique потому что из-за того, что не был указан порядок оценки параметров, это было небезопасно: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Объяснение: если оценка сначала вы...
20 дек. '18 в 17:23
2 отв.

Гарантируется ли unique_ptr сохранение nullptr после перемещения?

Является ли unique_ptr гарантией сохранение nullptr после перемещения? std::unique_ptr<int> p1{new int{23}}; std::unique_ptr<int> p2{std::move(p1)}; assert(!p1); // is this always true?
05 июня '14 в 16:37
4 отв.

Является ли auto_ptr устаревшим?

Будет ли auto_ptr устаревшим на входящем стандарте С++? Если unique_ptr используется для передачи прав собственности вместо shared_ptr? Если unique_ptr не соответствует стандарту, то нужно ли использовать shared_ptr вместо этого?
08 марта '10 в 22:32
2 отв.

Как использовать unique_ptr для pimpl?

Вот упрощение того, что я вижу, когда пытаюсь использовать unique_ptr для pimpl. Я выбрал unique_ptr, потому что я действительно хочу, чтобы класс владел указателем - я хочу, чтобы сроки жизни указателя pimpl и класса были одинаковыми. В любом случа...
26 янв. '12 в 18:19