核心cpp指南

时间:2017-11-03 08:04:37

标签: c++ cpp-core-guidelines

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

  

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

任何人都可以向那些想要了解现代C ++的老牌C程序员解释这意味着什么?

1 个答案:

答案 0 :(得分:6)

第P3节是关于“快速意图”。因此,这个想法更明确地表达了意图。

考虑f(T*, int)。我们不得不问:

  1. 指针指向单个对象还是数组?
  2. 整数是代表数组大小还是其他什么?
  3. 信息在功能签名中没有很好地表达。它必须通过其他方式获得,例如文件,命名惯例等。

    另一方面,当我们看到f(span<T>)具有明确且无可置疑的意图时:该函数采用数组(通过span<T>对象引用)。目的很明确,因为这是span的唯一目的,不像指针是多用途的。

    因此,如果打算采用数组,f(span<T>)更好地说明意图。