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

How to pass std::string_view by value or by const reference

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

void fval(std::string_view sv);
void fcref(std::string_view const &sv);

哪个更好?

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

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

STL是怎么做到的?

我们通常按值传递 string_views。

C++20 草案中的示例: