码迷,mamicode.com
首页 > 编程语言 > 详细

c++11 shared_ptr & unique_ptr & move semantics(右值引用)

时间:2015-06-26 13:03:36      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:shared   unique   c++   引用   

just read it
smart_ptr: https://mbevin.wordpress.com/2012/11/18/smart-pointers/

使用任何指针是都要考虑ownership+memory-management+lifetime这几个问题。
who is the owner of this object? is there one owner or many? who will responese for the deletion?

使用unique_ptr则表示该对象为owner,但可以转移(std::move)

plain pointers should never be used to act as the ‘owners’ of objects

尽可能多的使用shared_ptr,在环形引用时考虑weak_ptr(不会增加只针的引用计数)

创建一个对象后立即赋值给shared_ptr或者unique_ptr,函数返回普通指针时,也立即将普通指针赋值给智能指针,以保证自动内存管理

智能指针对象直接以值的形式保存在container中,而不是指针或者引用,以传值方式传递函数参数,函数以值返回等(std::move,右值引用)。

使用 shared_ptr是多线程安全的,但是shared_ptr本身不是多线程安全。即,在多线程中使用智能指针时,每个线程都应该有一个shared_ptr对象,而不是多个线程使用同一个shared_ptr对象。


move: https://mbevin.wordpress.com/2012/11/20/move-semantics/

move 与 std模板容器的应用:
to be continued…

c++11 shared_ptr & unique_ptr & move semantics(右值引用)

标签:shared   unique   c++   引用   

原文地址:http://blog.csdn.net/gw569453350game/article/details/46646633

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!