6
ฉันจะส่งผ่านอาร์กิวเมนต์ unique_ptr ไปยังตัวสร้างหรือฟังก์ชันได้อย่างไร
ฉันใหม่เพื่อย้ายซีแมนทิกส์ใน C ++ 11 และฉันไม่รู้วิธีจัดการunique_ptrพารามิเตอร์ใน Constructor หรือฟังก์ชั่น พิจารณาคลาสนี้อ้างอิง: #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 next; }; นี่เป็นวิธีที่ฉันควรจะเขียนฟังก์ชั่นการunique_ptrโต้แย้ง? และฉันต้องใช้std::moveในรหัสโทรหรือไม่ Base::UPtr b1; Base::UPtr b2(new Base()); b1->setNext(b2); //should I write b1->setNext(std::move(b2)); instead?
400
c++
arguments
c++11
unique-ptr