std::cspan 怎么了?
What happened to std::cspan?
std::span
已投票进入 C++20。我假设连同 std::span
,会有一个像这样定义的方便别名:
template <class T, size_t Extent = dynamic_extent>
using cspan = span<const T, Extent>;
对我来说,这似乎是一个非常方便的别名。与 span
相比,我可能更经常使用 cspan
!根据 cppreference, cspan
doesn't exist. There's one mention of cspan
in this paper,这似乎暗示它在某个时候属于标准。我找不到任何其他提及。
那么 cspan
怎么了?它被删除了吗?它曾经存在过吗?
的确,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
是什么。
std::span
已投票进入 C++20。我假设连同 std::span
,会有一个像这样定义的方便别名:
template <class T, size_t Extent = dynamic_extent>
using cspan = span<const T, Extent>;
对我来说,这似乎是一个非常方便的别名。与 span
相比,我可能更经常使用 cspan
!根据 cppreference, cspan
doesn't exist. There's one mention of cspan
in this paper,这似乎暗示它在某个时候属于标准。我找不到任何其他提及。
那么 cspan
怎么了?它被删除了吗?它曾经存在过吗?
的确,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
是什么。