Pertanyaan yang diberi tag «shared-ptr»

Referensi menghitung kelas penunjuk cerdas yang menerapkan kepemilikan bersama


8
Perbedaan make_ shared dan normal shared_ptr di C ++
std::shared_ptr<Object> p1 = std::make_shared<Object>("foo"); std::shared_ptr<Object> p2(new Object("foo")); Banyak posting google dan stackoverflow ada di sini, tapi saya tidak bisa mengerti mengapa make_sharedlebih efisien daripada langsung menggunakan shared_ptr. Dapatkah seseorang menjelaskan kepada saya langkah demi langkah urutan objek yang dibuat dan operasi yang dilakukan oleh keduanya sehingga saya akan dapat memahami …
276 c++  c++11  shared-ptr 

10
Haruskah kita meneruskan shared_ptr dengan referensi atau berdasarkan nilai?
Saat fungsi mengambil shared_ptr(dari boost atau C ++ 11 STL), apakah Anda mengopernya: dengan referensi const: void foo(const shared_ptr<T>& p) atau berdasarkan nilai void foo(shared_ptr<T> p):? Saya lebih suka metode pertama karena saya curiga akan lebih cepat. Tetapi apakah ini benar-benar layak atau adakah masalah tambahan? Bisakah Anda memberikan alasan …
270 c++  c++11  boost  shared-ptr 


16
Bagaimana saya memanggil :: std :: make_share di kelas dengan hanya konstruktor yang dilindungi atau pribadi?
Saya memiliki kode ini yang tidak berfungsi, tetapi saya pikir maksudnya jelas: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A &operator =(const A &) = delete; }; ::std::shared_ptr<A> foo() { return A::create(); } Tapi …
187 c++  c++11  shared-ptr 

2
shared_ptr ke sebuah array: haruskah itu digunakan?
Hanya pertanyaan kecil tentang shared_ptr. Apakah ini praktik yang baik untuk menggunakan shared_ptrmenunjuk ke array? Sebagai contoh, shared_ptr<int> sp(new int[10]); Jika tidak, mengapa tidak? Salah satu alasan saya sudah sadar adalah seseorang tidak dapat menambah / mengurangi shared_ptr. Oleh karena itu tidak dapat digunakan seperti pointer normal ke array.
172 c++  c++11  shared-ptr 

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 …

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; }

6
Mengapa std :: shared_ptr <void> berfungsi
Saya menemukan beberapa kode menggunakan std :: shared_ptr untuk melakukan pembersihan sembarang saat shutdown. Awalnya saya pikir kode ini tidak mungkin bekerja, tetapi kemudian saya mencoba yang berikut: #include &lt;memory&gt; #include &lt;iostream&gt; #include &lt;vector&gt; class test { public: test() { std::cout &lt;&lt; "Test created" &lt;&lt; std::endl; } ~test() { std::cout …
129 c++  c++11  shared-ptr 

17
C ++ - meneruskan referensi ke std :: shared_ptr atau boost :: shared_ptr
Jika saya memiliki fungsi yang perlu bekerja dengan a shared_ptr, bukankah akan lebih efisien untuk memberikan referensi padanya (jadi untuk menghindari penyalinan shared_ptrobjek)? Apa saja kemungkinan efek samping yang buruk? Saya membayangkan dua kemungkinan kasus: 1) di dalam fungsi salinan dibuat dari argumen, seperti di ClassA::take_copy_of_sp(boost::shared_ptr&lt;foo&gt; &amp;sp) { ... m_sp_member=sp; …

4
Perbedaan antara `const shared_ptr <T>` dan `shared_ptr <const T>`?
Saya menulis metode pengakses untuk penunjuk bersama di C ++ yang berjalan seperti ini: class Foo { public: return_type getBar() const { return m_bar; } private: boost::shared_ptr&lt;Bar&gt; m_bar; } Jadi untuk mendukung keteguhan getBar()jenis kembalian haruslah boost::shared_ptryang mencegah modifikasi dari Barpoin itu. Dugaan saya adalah shared_ptr&lt;const Bar&gt;tipe yang ingin saya …
115 c++  boost  const  shared-ptr 

3
std :: shared_ptr thread safety menjelaskan
Saya membaca http://gcc.gnu.org/onlinedocs/libstdc++/manual/shared_ptr.html dan beberapa masalah keamanan untaian masih belum jelas bagi saya: Standar menjamin bahwa penghitungan referensi ditangani dengan thread safe dan platform independen, bukan? Masalah serupa - jaminan standar bahwa hanya satu utas (memegang referensi terakhir) yang akan memanggil hapus pada objek bersama, bukan? shared_ptr tidak menjamin keamanan …
106 c++  c++11  shared-ptr 

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 &lt;memory&gt;tidak membantu sama sekali! Saya telah mengunduh penguat dan semuanya tetapi tetap tidak muncul! Dapatkah seseorang membantu …

2
std :: shared_ptr ini
Saat ini saya mencoba mempelajari cara menggunakan petunjuk cerdas. Namun saat melakukan beberapa eksperimen, saya menemukan situasi berikut yang tidak dapat saya temukan solusi yang memuaskan: Bayangkan Anda memiliki objek kelas A menjadi induk dari objek kelas B (anak), tetapi keduanya harus saling mengenal: class A; class B; class A …


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.