Pertanyaan yang diberi tag «unique-ptr»

std :: unique_ptr adalah penunjuk cerdas yang mempertahankan kepemilikan tunggal suatu objek melalui penunjuk. unique_ptr tidak dapat disalin atau dialihkan, dua contoh unique_ptr tidak dapat mengelola objek yang sama.

6
Mengapa menggunakan std :: make_unique di C ++ 17?
Sejauh yang saya mengerti, C ++ 14 diperkenalkan std::make_uniquekarena, sebagai hasil dari urutan evaluasi parameter tidak ditentukan, ini tidak aman: f(std::unique_ptr<MyClass>(new MyClass(param)), g()); // Syntax A (Penjelasan: jika evaluasi pertama-tama mengalokasikan memori untuk pointer mentah, kemudian panggilan g()dan pengecualian dilemparkan sebelum std::unique_ptrkonstruksi, maka memori tersebut bocor.) Menelepon std::make_uniqueadalah cara untuk …
96 c++  c++17  unique-ptr 

4
Bagaimana cara mendeklarasikan std :: unique_ptr dan apa gunanya?
Saya mencoba memahami cara std::unique_ptrkerjanya dan untuk itu saya menemukan dokumen ini . Penulis memulai dari contoh berikut: #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 bukan anggota 'std'
Saya mencoba untuk mengkompilasi program kumpulan benang berikut yang diposting pada tinjauan kode untuk mengujinya. /codereview/55100/platform-independant-thread-pool-v4 Tapi saya mendapatkan kesalahan 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 …

4
Mengapa T * dapat dilewatkan dalam register, tetapi unique_ptr <T> tidak bisa?
Saya menonton ceramah Chandler Carruth di CppCon 2019: Tidak ada Abstraksi Tanpa Biaya di dalamnya, dia memberikan contoh bagaimana dia dikejutkan dengan berapa banyak biaya overhead yang Anda keluarkan dengan menggunakan std::unique_ptr&lt;int&gt;lebih dari satu int*; segmen itu dimulai pada titik waktu 17:25. Anda dapat melihat hasil kompilasi contoh pasangan potongannya …


3
Mengembalikan void pointer unik dari suatu fungsi
Untuk mendapatkan void *dari fungsi di CI akan melakukan sesuatu seperti ini (contoh sangat mendasar): void *get_ptr(size_t size) { void *ptr = malloc(size); return ptr; } Bagaimana cara mencapai hasil yang sama saat menggunakan std::unique_ptr&lt;&gt;?
11 c++  c  unique-ptr 

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.