为什么没有类似于std :: string_view的view <t>

时间:2018-04-12 14:21:36

标签: c++ c++17 stdstring

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

enter image description here

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

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

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

1 个答案:

答案 0 :(得分:7)

对于任意对象的连续集合,建议使用非拥有类型。

std::span已被批准用于C ++ 20。 (现在可以使用gsl::span实现。)

它的行为类似于C ++ 17 std::string_view,但该界面提供了类似于容器的一般访问,并且不会限制对const的数据访问。