#include // for std::unique_ptr #include // for std::cout, std::endl #include // for EXIT_SUCCESS using namespace std; int main(int argc, char **argv) { unique_ptr x(new int(5)); cout << "x: " << x.get() << endl; unique_ptr y(x.release()); // y takes ownership, x abdicates it cout << "x: " << x.get() << endl; cout << "y: " << y.get() << endl; unique_ptr z(new int(10)); // y transfers ownership of its pointer to z. // z's old pointer is delete'd in the process. z.reset(y.release()); return EXIT_SUCCESS; }