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
Bagaimana cara meneruskan argumen unique_ptr ke konstruktor atau fungsi?
Saya baru saja memindahkan semantik dalam C ++ 11 dan saya tidak tahu bagaimana menangani unique_ptrparameter dalam konstruktor atau fungsi. Pertimbangkan referensi kelas ini sendiri: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); } protected : Base::UPtr …

5
Mengembalikan unique_ptr dari fungsi
unique_ptr<T>tidak mengizinkan pembuatan salinan, melainkan mendukung pemindahan semantik. Namun, saya dapat mengembalikan unique_ptr<T>dari fungsi dan menetapkan nilai yang dikembalikan ke variabel. #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() { unique_ptr<int> p( new int(10) ); return p; // 1 //return move( p ); // 2 } int main() { …
367 c++  c++11  unique-ptr 



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&) …

6
make_unique dan penerusan sempurna
Mengapa tidak ada std::make_uniquetemplat fungsi di pustaka C ++ 11 standar? saya menemukan std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); sedikit bertele-tele. Bukankah yang berikut ini akan jauh lebih baik? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Ini menyembunyikan yang newbaik dan hanya menyebutkan tipe sekali. Bagaimanapun, ini adalah upaya saya untuk implementasi …

6
std :: unique_ptr dengan tipe tidak lengkap tidak akan dikompilasi
Saya menggunakan idiom-jerawat dengan std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; // defined elsewhere std::unique_ptr<window_impl> impl_; // won't compile }; Namun, saya mendapatkan kesalahan kompilasi tentang penggunaan tipe yang tidak lengkap, pada baris 304 di <memory>: Aplikasi ' sizeof' ke jenis yang tidak lengkap ' uixx::window::window_impl' tidak …

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 …

6
Bagaimana cara menggunakan deleter khusus dengan anggota std :: unique_ptr?
Saya memiliki kelas dengan anggota unique_ptr. class Foo { private: std::unique_ptr<Bar> bar; ... }; Bilah adalah kelas pihak ketiga yang memiliki fungsi create () dan fungsi destroy (). Jika saya ingin menggunakan std::unique_ptrdengan itu dalam fungsi yang berdiri sendiri yang bisa saya lakukan: void foo() { std::unique_ptr<Bar, void(*)(Bar*)> bar(create(), [](Bar* …





7
Bagaimana cara mengirimkan std :: unique_ptr ke dalam suatu fungsi
Bagaimana cara mengirimkan a std::unique_ptrke suatu fungsi? Katakanlah saya memiliki kelas berikut: class A { public: A(int val) { _val = val; } int GetVal() { return _val; } private: int _val; }; Berikut ini tidak dapat dikompilasi: void MyFunc(unique_ptr<A> arg) { cout << arg->GetVal() << endl; } int main(int …
97 c++  c++11  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.