我從新的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'結尾構造函數。 –