前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++核心准则讨论:按值返回容器(依靠移动或复制省略高效率)

C++核心准则讨论:按值返回容器(依靠移动或复制省略高效率)

作者头像
面向对象思考
发布2020-12-31 14:55:44
3910
发布2020-12-31 14:55:44
举报

Discussion: Return containers by value (relying on move or copy elision for efficiency)

讨论:按值返回容器(依靠移动或复制省略高效率)

Reason(原因)

To simplify code and eliminate a need for explicit memory management. To bring an object into a surrounding scope, thereby extending its lifetime.

为了简化代码并消除对显式内存管理的需求。使物体进入周围的范围,从而延长其使用寿命。

See also: F.20, the general item about "out" output values

另请参见:F.20 输出结果时更应该使用返回值而不是输出参数

Example(示例)

代码语言:javascript
复制
vector<int> get_large_vector()
{
    return ...;
}

auto v = get_large_vector(); //  return by value is ok, most modern compilers will do copy elision
Exception(例外)

See the Exceptions in F.20.

参加F.20中的例外项目。

Enforcement(实施建议)

Check for pointers and references returned from functions and see if they are assigned to resource handles (e.g., to a unique_ptr).

检查是否有从函数返回的指针和引用,并查看它们是否已分配给资源句柄(例如,分配给unique_ptr)。

原文链接https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#discussion-return-containers-by-value-relying-on-move-or-copy-elision-for-efficiency

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Discussion: Return containers by value (relying on move or copy elision for efficiency)
  • Reason(原因)
    • Exception(例外)
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档