前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++核心准则R.32: 通过​unique_ptr<widget>类型参数表示函数试图获取widget的所有权

C++核心准则R.32: 通过​unique_ptr<widget>类型参数表示函数试图获取widget的所有权

作者头像
面向对象思考
发布2020-04-14 16:47:13
5540
发布2020-04-14 16:47:13
举报

R.32: Take a unique_ptr<widget> parameter to express that a function assumes ownership of a widget

R.32: 通过unique_ptr<widget>类型参数表示函数试图获取widget的所有权

Reason(原因)

Using unique_ptr in this way both documents and enforces the function call's ownership transfer.

以这种方式使用unique_ptr可以从文档和实现两个方面强制进行所有权的移交。

Example(示例)

代码语言:javascript
复制
void sink(unique_ptr<widget>); // takes ownership of the widget

void uses(widget*);            // just uses the widget
Example, bad(反面示例)
代码语言:javascript
复制
void thinko(const unique_ptr<widget>&); // usually not what you want
Enforcement(实施建议)
  • (Simple) Warn if a function takes a Unique_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.
  • (简单)如果一个函数通过左值引用方式使用了Unique_pointer<T>参数,却没有对它赋值,或者在至少一条代码路径上调用了reset,报警。建议使用T*或者T&代替。
  • (Simple) ((Foundation)) Warn if a function takes a Unique_pointer<T> parameter by reference to const. Suggest taking a const T* or const T& instead.
  • (简单)((基本)) 如果一个函数以常量引用方式使用Unique_pointer<T>参数,建议使用const T*或者const T&代替。

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#r32-take-a-unique_ptrwidget-parameter-to-express-that-a-function-assumes-ownership-of-a-widget


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

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

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • R.32: Take a unique_ptr<widget> parameter to express that a function assumes ownership of a widget
  • Reason(原因)
    • Example, bad(反面示例)
      • Enforcement(实施建议)
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档