std::cspan 发生了什么?

10

std::span已被投票纳入C++20标准。我认为除了std::span之外,还会定义一个方便的别名,如下所示:

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

对我来说,这似乎是一个非常方便的别名。我可能会比使用更经常地使用cspan 根据cppreferencecspan不存在。 this paper中提到了cspan一次,这似乎暗示它曾经在标准中存在过。我找不到其他任何提及。
那么cspan怎么了?被删除了吗?它真的存在过吗?
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>。它比cspan<T>长了整整5个字符,并且有额外的好处,使更多人了解span是什么。


“const”(六个字符)与“c”(一个字符)相比,多了五个字符 - 我猜您忘记计算空格了。 - Martin Bonner supports Monica
7
@MartinBonner,我写了五个汉字!糟糕的编辑。 - Barry
1
我认为那真的很不幸。5个字符占据了一行的6.25%!当然,我可以自己定义它,但我真的相信这应该成为标准库的一部分。 - Indiana Kernick
3
@Kerndog73,我的意思是,5也是42的11.9%,但这并不能使数字变得更大。我在我的代码库中已经有一个类似span的类型很多年了,我甚至从来没有听说过有人建议写出“const”太长了。它甚至不处于简洁性极为重要的位置。 - Barry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接