首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >核心cpp准则中f(T*,int)接口与f(span<T>)接口的意义

核心cpp准则中f(T*,int)接口与f(span<T>)接口的意义
EN

Stack Overflow用户
提问于 2017-11-03 08:04:36
回答 1查看 172关注 0票数 1

核心cpp指南的P3节在其执行部分提供了以下模式:

f(T*,int)接口与f(span)接口

有人能解释它对一个想要了解现代C++的老程序员意味着什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-03 08:25:01

P3节是关于“快递意图”的。因此,我们的想法是,哪一个人能更清楚地表达意图。

考虑一下f(T*, int)。我们必须问:

  1. 指针是指向单个对象还是指向数组?
  2. 整数是表示数组大小还是其他什么的?

这些信息在函数签名中没有得到很好的表达。它必须通过其他方式获得,例如文档、命名约定等。

另一方面,当我们看到f(span<T>)有一个明确和毫无疑问的意图:函数接受一个数组(通过一个span<T>对象引用)。意图是明确的,因为这是span的唯一目的,不像指针是多用途的。

因此,如果意图是接收一个数组,f(span<T>)会更好地说明意图。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47091021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档