Pertanyaan yang diberi tag «smart-pointers»

Tipe data abstrak yang menyimulasikan penunjuk sambil menyediakan fitur tambahan, seperti pengumpulan sampah otomatis atau pemeriksaan batas



4
Pointer jenis apa yang saya gunakan saat?
Ok, jadi terakhir kali saya menulis C ++ untuk mencari nafkah, std::auto_ptradalah semua std lib telah tersedia, dan boost::shared_ptrsemua adalah kemarahan. Saya tidak pernah benar-benar melihat ke dalam tipe penunjuk pintar lainnya yang disediakan. Saya mengerti bahwa C ++ 11 sekarang menyediakan beberapa tipe boost, tetapi tidak semuanya. Jadi apakah …

4
smart pointer (boost) menjelaskan
Apa perbedaan antara set pointer berikut? Kapan Anda menggunakan setiap pointer dalam kode produksi, jika sama sekali? Contohnya akan dihargai! scoped_ptr shared_ptr weak_ptr intrusive_ptr Apakah Anda menggunakan peningkatan dalam kode produksi?

2
Mengapa saya tidak bisa push_back a unique_ptr ke vektor?
Apa yang salah dengan program ini? #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 command has a vicious error. return 0; } Kesalahan: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) …


4
std :: auto_ptr ke std :: unique_ptr
Dengan standar baru datang (dan bagian sudah tersedia di beberapa kompiler), tipe baru std::unique_ptrseharusnya menjadi pengganti std::auto_ptr. Apakah penggunaannya benar-benar tumpang tindih (sehingga saya dapat melakukan global menemukan / mengganti kode saya (bukan bahwa saya akan melakukan ini, tetapi jika saya melakukannya)) atau haruskah saya menyadari beberapa perbedaan yang tidak …

2
Menggunakan pointer cerdas untuk anggota kelas
Saya mengalami kesulitan memahami penggunaan pointer cerdas sebagai anggota kelas di C ++ 11. Saya telah membaca banyak tentang pointer cerdas dan saya pikir saya mengerti bagaimana unique_ptrdan shared_ptr/ weak_ptrsecara umum bekerja. Yang tidak saya mengerti adalah penggunaan sebenarnya. Sepertinya semua orang merekomendasikan menggunakan unique_ptrsebagai cara untuk pergi hampir sepanjang …

8
Mengapa pustaka dan kerangka kerja C ++ tidak pernah menggunakan pointer pintar?
Saya membaca di beberapa artikel bahwa pointer mentah hampir tidak boleh digunakan. Alih-alih, mereka harus selalu dibungkus dengan pointer pintar, apakah itu scoped atau shared pointer. Namun, saya perhatikan bahwa kerangka kerja seperti Qt, wxWidgets dan perpustakaan seperti Boost tidak pernah kembali atau mengharapkan pointer pintar, seolah-olah mereka tidak menggunakannya …

6
Mengapa saya std :: memindahkan std :: shared_ptr?
Saya telah mencari melalui kode sumber Dentang dan saya menemukan potongan ini: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Mengapa saya ingin std::movesebuah std::shared_ptr? Apakah ada titik mentransfer kepemilikan pada sumber daya bersama? Kenapa aku tidak melakukan ini saja? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = Value; }


3
Implementasi C ++ Smart Pointer apa yang tersedia?
Perbandingan, Pro, Kontra, dan Kapan Menggunakan? Ini adalah spin-off dari utas pengumpulan sampah di mana apa yang saya anggap sebagai jawaban sederhana menghasilkan banyak komentar tentang beberapa implementasi penunjuk cerdas tertentu sehingga sepertinya layak untuk memulai posting baru. Pada akhirnya, pertanyaannya adalah apa saja berbagai implementasi smart pointer di C …


4
Di mana shared_ptr?
Saya sangat frustrasi sekarang setelah beberapa jam mencoba menemukan di mana shared_ptr berada. Tak satu pun dari contoh yang saya lihat menunjukkan kode lengkap untuk menyertakan header shared_ptr(dan berfungsi). Cukup menyatakan std, tr1dan <memory>tidak membantu sama sekali! Saya telah mengunduh penguat dan semuanya tetapi tetap tidak muncul! Dapatkah seseorang membantu …


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.