我从新的C++ 17标准中发现string_view有点多余。为什么使用string_view而不是泛化的container_view <T>?
我们有一个相当详细的passing data to callee简单机制的集合,没有太多的开销,现在又有另外一个只针对一个容器类型。
我不明白为什么提供这种机器只适用于字符串,而不是一些更通用的类型的其他容器。一个明智的答案是我们已经有了这些解决方案。例如在C++17 and beyond演示文稿中,string_view被解释为observer_ptr<T> (or T*) for string
。
请对比更一般的container_view来说明参数,而不是C++ 17引入的string_view。
我认为'observer_ptr'比较只会产生混淆,并且会影响是否应该有一个广义的'container_view'而不是特定的'string_view'的问题。 – juanchopanza
因为对字符串的操作是最常见的编程任务?我认为答案很简单。 –
container_view不会在一个'const char *'上工作,但'string_view'有额外的假设,即这样的一个指针指向一个*字符串*,当它由该单指针构造时以'\ 0'结尾构造函数。 –