如何通过值或常量引用传递 std::string_view

Nic*_*ick 6 string-view c++17

通常string_view用于这样的函数参数:

void fval(std::string_view sv);
void fcref(std::string_view const &sv);
Run Code Online (Sandbox Code Playgroud)

哪个更好?

const 引用是 8 个字节,string_view通常是它的两倍,例如 16 个字节。

但是,如果没有内联或优化掉,const 引用可能有两个间接引用 - 一个用于 ref,第二个用于内部指针。

STL是怎么做的?

Mar*_*low 5

我们通常string_view按值传递s。

C++20 草案中的示例:

  • 我正想问谁是“我们”:) 谢谢马歇尔! (2认同)
  • 对为什么会这样的一些解释可能会很好:) (2认同)