January 2018
Intermediate to advanced
374 pages
9h 53m
English
The safest and least complicated ownership is unique ownership and should be the first thing that pops into your mind when thinking about smart pointers. Unique pointers represent unique ownership, that is, a resource is owned by exactly one entity. A unique ownership can be transferred to someone else, but it cannot be copied, since that would break the uniqueness. Unique pointers are also very efficient since they do not add any performance overhead compared to ordinary raw pointers. Here is how to use a sed::unique_ptr:
auto owner = std::make_unique<User>("John");
auto new_owner = std::move(owner); // Transfer ownership