-
std::move移动操作可以将对象转换成可以接受的对象类型.
- 函数参数
void process_big_object(std::unique_ptr<big_object>);
std::unique_ptr<big_object> p(new big_object);
std::thread t(process_big_object,std::move(p));
原因:unique_str智能指针禁止了拷贝构造函数
- 函数返回的类型
unique_ptr<int> thread_func()
{
unique_ptr<int> a(new int(2));
*a += 1;
cout << *a << endl;
return a;
}
unique_ptr<int> b = move(thread_func()); //move移动语义
cout << *b << endl;
原因:unique_str智能指针禁止了赋值构造函数
-
C++标准库中很多资源占有类型,可移动,但是不可拷贝
网友评论