9

std::span已被选入 C++20。我假设除了std::span,还会有一个这样定义的便利别名:

template <class T, size_t Extent = dynamic_extent>
using cspan = span<const T, Extent>;

对我来说,这似乎是一个非常方便的别名。我可能会cspan更频繁地使用span!根据cppreferencecspan不存在。cspan这篇论文中提到了一个似乎暗示它在某个时候在标准中。我找不到任何其他提及。

那么发生了cspan什么?它被删除了吗?它曾经存在过吗?

4

1 回答 1

10

确实,cspan不存在,也从未存在过。唯一的名称变化是span以前的拼写array_view

P1085R2中的参考:

|  3  |  Make span operate only on const T, (rename cspan, obviously :D)  |

是一个笑话,正如所暗示的那样:D(请注意,C-SPAN是广播联邦政府程序的有线网络)。实际的提议是span<T>改变行为就像今天的一样span<T const>(并且厚颜无耻地重命名 cspan)。

就写吧span<T const>。它比 长了整整 5 个字符cspan<T>,另外还有一个好处是更多的人会知道它是什么span

于 2019-07-02T12:43:48.337 回答