标签: c++ cpp-core-guidelines
核心cpp指南的P3部分在其执行部分下提供了以下模式:
f(T *,int)接口与f(span)接口
任何人都可以向那些想要了解现代C ++的老牌C程序员解释这意味着什么?
答案 0 :(得分:6)
第P3节是关于“快速意图”。因此,这个想法更明确地表达了意图。
考虑f(T*, int)。我们不得不问:
f(T*, int)
信息在功能签名中没有很好地表达。它必须通过其他方式获得,例如文件,命名惯例等。
另一方面,当我们看到f(span<T>)具有明确且无可置疑的意图时:该函数采用数组(通过span<T>对象引用)。目的很明确,因为这是span的唯一目的,不像指针是多用途的。
f(span<T>)
span<T>
span
因此,如果打算采用数组,f(span<T>)更好地说明意图。