Câu hỏi được gắn thẻ «unique-ptr»

std :: unique_ptr là một con trỏ thông minh giữ quyền sở hữu duy nhất của một đối tượng thông qua một con trỏ. unique_ptr không thể sao chép hoặc sao chép-gán được, hai trường hợp của unique_ptr không thể quản lý cùng một đối tượng.


5
Trả về unique_ptr từ các hàm
unique_ptr<T>không cho phép xây dựng bản sao, thay vào đó nó hỗ trợ di chuyển ngữ nghĩa. Tuy nhiên, tôi có thể trả về a unique_ptr<T>từ một hàm và gán giá trị được trả về cho một biến. #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() { unique_ptr<int> p( …
367 c++  c++11  unique-ptr 



2
Tại sao tôi không thể đẩy một unique_ptr vào một vectơ?
Có gì sai với chương trình này? #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; } Lỗi: 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 …

6
make_unique và chuyển tiếp hoàn hảo
Tại sao không có std::make_uniquemẫu hàm trong thư viện C ++ 11 tiêu chuẩn? Tôi tìm thấy std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); dài dòng một chút. Không phải sau đây sẽ đẹp hơn nhiều? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Điều này ẩn giấu newđộc đáo và chỉ đề cập …

6
std :: unique_ptr với kiểu không hoàn chỉnh sẽ không biên dịch
Tôi đang sử dụng thành ngữ pimpl với std::unique_ptr: class window { window(const rectangle& rect); private: class window_impl; // defined elsewhere std::unique_ptr<window_impl> impl_; // won't compile }; Tuy nhiên, tôi gặp lỗi biên dịch liên quan đến việc sử dụng loại không hoàn chỉnh, trên dòng 304 trong <memory>: Áp …

4
std :: auto_ptr thành std :: unique_ptr
Với tiêu chuẩn mới sắp tới (và các bộ phận đã có sẵn trong một số trình biên dịch), loại mới std::unique_ptrđược cho là thay thế cho std::auto_ptr. Việc sử dụng của chúng có trùng lặp chính xác không (vì vậy tôi có thể thực hiện tìm / thay thế …







7
Làm cách nào để chuyển std :: unique_ptr vào một hàm
Làm cách nào để chuyển std::unique_ptrmột hàm vào một hàm? Giả sử tôi có lớp sau: class A { public: A(int val) { _val = val; } int GetVal() { return _val; } private: int _val; }; Sau đây không biên dịch: void MyFunc(unique_ptr<A> arg) { cout << arg->GetVal() << …
97 c++  c++11  unique-ptr 

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.