Запитання з тегом «unique-ptr»

std :: 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
помилка :: 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 * може бути передано в регістр, але унікальний_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; } …
83 c++  c++11  unique-ptr 

4
Чи застаріло auto_ptr?
Чи буде застарілим auto_ptr у вхідному стандарті C ++? Чи слід для передачі права власності використовувати замість shared_ptr унікальний_ptr? Якщо unique_ptr відсутній у стандарті, то чи потрібно мені замість цього використовувати shared_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означає в цьому контексті? На сторінці документації я вважаю, що моя справа є 16) y &lt; nullptr, …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.