Tag: cpp core guidelines

gsl库中的span和array_view有什么区别?

在最近的几次会议演讲中,我听说Bjarne Stroustrup和其他人提到了C ++的新编码准则以及支持它们的一些types。 具体来说,我记得span<T> (T* p, int n)的例子,而不是(T* p, int n)作为函数的参数 (大约在32:00进入通话)。 但我也记得使用array_view<T>的build议。 他们是两个select,但同一个概念? 还是我混淆了事实,而他们其实并没有那么相关? 我似乎无法find他们应该是什么的权威定义。

什么是“跨度”,我应该什么时候使用一个?

最近我得到了一些build议,在我的代码中使用span<T> ,或者在网站上看到了一些使用span的东西 – 据说是某种容器。 但是 – 在C ++标准库中找不到类似的东西。 那么这个神秘的span<T>是什么?如果它不是标准的,为什么(或何时)使用它是一个好主意?