为什么没有 <T> 类似于 std::string_view 的视图

Why there is no view<T> similar to std::string_view

我知道 std::string_view 对字符串的非拥有引用 并且 std::string_viewstd::string 之间的主要区别是

现在,为什么 std::string_view 不适用于其他类型?或者为什么这个实现只针对 std::string ?

例如:如果我们有类似的 <T>generic_view,其中 T 可以是任何类型,包括自定义类型。

有了这个,可以使用 <T>generic_view 而不是使用 const T& 作为函数参数。 std::string_view 的其他优点也很有用,如分配、复制等。

在 C++20 中有一个 non-owning 类型,用于任意对象的连续集合,称为 std::span

C++20 之前的 C++ 版本可以使用独立实现 gsl::span

std::span 的行为类似于 C++17 的 std::string_view,但接口提供 general 类似容器的访问而不是类似字符串的访问,并且基础数据可以是非const。 (根据问题中的 table,Element MutabilityAllowed。)