美文网首页
C++并发编程

C++并发编程

作者: Supreme_DJK | 来源:发表于2018-09-17 21:53 被阅读0次
  • std::move移动操作可以将对象转换成可以接受的对象类型.

  1. 函数参数
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智能指针禁止了拷贝构造函数

  1. 函数返回的类型
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++标准库中很多资源占有类型,可移动,但是不可拷贝

相关文章

网友评论

      本文标题:C++并发编程

      本文链接:https://www.haomeiwen.com/subject/gtmrnftx.html