前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++核心准则R.36: 使用const shared_ptr<widget>&类型参数表示可能持有一个对象的引用计数

C++核心准则R.36: 使用const shared_ptr<widget>&类型参数表示可能持有一个对象的引用计数

作者头像
面向对象思考
发布2020-04-14 16:48:34
9940
发布2020-04-14 16:48:34
举报

R.36: Take a const shared_ptr<widget>& parameter to express that it might retain a reference count to the object ???

R.36: 使用const shared_ptr<widget>&类型参数表示可能持有一个对象的引用计数。

Reason(原因)

This makes the function's ??? explicit.

这样可以使函数的行为更明确。

Example, good(范例)

代码语言:javascript
复制
void share(shared_ptr<widget>);            // share -- "will" retain refcount

void reseat(shared_ptr<widget>&);          // "might" reseat ptr

void may_share(const shared_ptr<widget>&); // "might" retain refcount
Enforcement(实施建议)
  • (Simple) Warn if a function takes a Shared_pointer<T> parameter by lvalue reference and does not either assign to it or call reset() on it on at least one code path. Suggest taking a T* or T& instead.
  • (简单)如果一个函数以左值引用方式使用了Shared_pointer<T>参数,却没有在任何一条代码路径上对它赋值或者调用reset(),提出警告并建议改用T* 或者 T& 代替。
  • (Simple) ((Foundation)) Warn if a function takes a Shared_pointer<T> by value or by reference to const and does not copy or move it to another Shared_pointer on at least one code path. Suggest taking a T* or T& instead.
  • (简单)((基本))如果一个函数以传值或者常量引用方式使用了Shared_pointer<T>参数,却没有在任何一条代码路径上拷贝它或者移动它,提出警告并建议改用T* 或者 T& 代替。
  • (Simple) ((Foundation)) Warn if a function takes a Shared_pointer<T> by rvalue reference. Suggesting taking it by value instead.
  • (简单)((基本))如果一个函数以右值引用方式使用了Shared_pointer<T>参数,建议改用传值方式。

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#r36-take-a-const-shared_ptrwidget-parameter-to-express-that-it-might-retain-a-reference-count-to-the-object-


觉得本文有帮助?请分享给更多人。

关注微信公众号【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 面向对象思考 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • R.36: Take a const shared_ptr<widget>& parameter to express that it might retain a reference count to the object ???
  • Reason(原因)
    • Enforcement(实施建议)
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档