shared_ptr 可以通过make_shared的标准库返回一个shared_ptr类型的指针来进行初始化,但是unique_ptr没有这样的操作,当定义一个unique_share类型的指针时,需要将其绑定到一个new返回的指针上。类似于shared_ptr,初始化unique_ptr必须采用直接初始化的形式:
unique_ptr<int> p1; //正确,指向一个int类型的unique_ptr
unique_ptr<int> p2(new int(5)); //正确指向一个值为5的int
unique_ptr<int> p3(5); //错误,int类型的5,但是需要一个new返回的指针