美文网首页
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