c++ 智能指针 unique_ptr

#include <iostream>
#include <condition_variable>
#include <atomic>
#include <thread>
#include <future>
#include <vector>

using namespace std;
class A {
public:
    A(int _x): x(_x) {

    }
    A () {
        x = 0;
    }
    int x;
};
int main()
{
    unique_ptr<A> p (new A);
    cout<<p->x<<endl;
    unique_ptr<A> p2 (new A(500));
    cout<<p2->x<<endl;

    // 从一个已初始化的类,
    A a(12);
    unique_ptr<A> p3 (&a);
    cout<<p3->x<<endl;

   /*
   x unique_ptr<A> p4; x
   x p4 = new A(333) x
   */
}
void f1(unique_ptr<int> p);
unique_ptr<int> p = make_unique<int>(1);
// 这里必须move,某种compile error
f1(move(p));