我发现新的C++17标准中的string_view有点冗余。
我们已经有了一系列简单机制将数据传递给被调用者,而且没有太多的开销,现在又出现了另一个仅适用于一种容器类型的机制。
我不明白为什么只为字符串提供这种机制,而不是为其他容器提供更普遍的类型。一个合理的答案是我们已经有了这些解决方案。例如,在C++17及以后演示中,string_view被解释为
请说明与C++17引入的string_view相比,更一般的container_view的论据。
我们已经有了一系列简单机制将数据传递给被调用者,而且没有太多的开销,现在又出现了另一个仅适用于一种容器类型的机制。
我不明白为什么只为字符串提供这种机制,而不是为其他容器提供更普遍的类型。一个合理的答案是我们已经有了这些解决方案。例如,在C++17及以后演示中,string_view被解释为
observer_ptr<T> (或 T*) for string
。请说明与C++17引入的string_view相比,更一般的container_view的论据。
observer_ptr
进行比较只会让问题更加混乱,转移了我们对于是否应该有一个通用的container_view
而不是特定的string_view
的关注。请注意,翻译时需要保留原文意思并尽量使其易懂,不要添加解释或其他额外内容。 - juanchopanzaconst char*
上无法工作,但string_view
有一个额外的假设,即这样的指针指向一个字符串,当它使用该单指针构造函数构造时以\0
结尾。 - Johannes Schaub - litb