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

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

6
Зачем использовать std :: make_unique в C ++ 17?
Насколько я понимаю, C ++ 14 был введен, std::make_uniqueпотому что из-за того, что порядок оценки параметров не был указан, это было небезопасно: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Объяснение: если оценка сначала выделяет память для необработанного указателя, затем вызывает g()и исключение перед std::unique_ptrпостроением, тогда происходит утечка памяти.) Вызов std::make_uniqueбыл способом …
96 c++  c++17  unique-ptr 

4
Как объявить std :: unique_ptr и в чем его польза?
Я пытаюсь понять, как это std::unique_ptrработает, и для этого я нашел этот документ. Автор исходит из следующего примера: #include <utility> //declarations of unique_ptr using std::unique_ptr; // default construction unique_ptr<int> up; //creates an empty object // initialize with an argument unique_ptr<int> uptr (new int(3)); double *pd= new double; unique_ptr<double> uptr2 (pd); …
95 c++  pointers  std  unique-ptr 

6
error :: make_unique не является членом std
Я пытаюсь скомпилировать следующую программу пула потоков, опубликованную в обзоре кода, чтобы проверить ее. /codereview/55100/platform-independant-thread-pool-v4 Но я получаю ошибки threadpool.hpp: In member function ‘std::future<decltype (task((forward<Args>)(args)...))> threadpool::enqueue_task(Func&&, Args&& ...)’: threadpool.hpp:94:28: error: ‘make_unique’ was not declared in this scope auto package_ptr = make_unique<task_package_impl<R, decltype(bound_task)>> (std::move(bound_task), std::move(promise)); ^ threadpool.hpp:94:81: error: expected primary-expression before …

4
Почему T * может быть передано в регистр, а unique_ptr <T> не может?
Я смотрю выступление Чендлера Каррута в CppCon 2019: Нет абстракций с нулевой стоимостью в нем он приводит пример того, как он был удивлен тем, сколько накладных расходов вы понесли, используя std::unique_ptr&lt;int&gt;овер int*; этот сегмент начинается примерно в момент времени 17:25. Вы можете взглянуть на результаты компиляции его примера пары фрагментов …

4
Как передать std :: unique_ptr?
У меня первая попытка использовать C ++ 11 unique_ptr; Я заменяю полиморфный необработанный указатель внутри своего проекта, который принадлежит одному классу, но передается довольно часто. Раньше у меня были такие функции, как: bool func(BaseClass* ptr, int other_arg) { bool val; // plain ordinary function that does something... return val; } …
85 c++  c++11  unique-ptr 



3
unique_ptr <0 ИЛИ что делает меньше, чем оператор?
Я имею дело с кодом, который был написан не мной. У меня есть это утверждение: // p is type of std::unique_ptr&lt;uint8_t[]&gt; if (p &lt; 0) { /* throw an exception */ } Так что же p &lt; 0значит в этом контексте? На странице документации , я считаю, что мой случай …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.