我知道std::string_view
是对字符串的非拥有引用,std::string_view
和std::string
之间的主要区别是
现在,为什么std :: string_view不适用于其他类型?或者为什么此实施仅针对std::string
?
例如:如果我们有类似的<T>generic_view
,其中T
可以是任何类型,包括自定义类型。
这样,可以使用const T&
而不是<T>generic_view
作为函数参数。 std::string_view
的其他优点也很有用,如分配,复制等。
答案 0 :(得分:7)
对于任意对象的连续集合,建议使用非拥有类型。
std::span
已被批准用于C ++ 20。 (现在可以使用gsl::span
实现。)
它的行为类似于C ++ 17 std::string_view
,但该界面提供了类似于容器的一般访问,并且不会限制对const
的数据访问。