如何按值或常量引用传递 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_view
s。
C++20 草案中的示例:
通常string_view
用于像这样的函数参数:
void fval(std::string_view sv);
void fcref(std::string_view const &sv);
哪个更好?
const 引用是 8 个字节,string_view
通常是它的两倍,例如16 个字节。
但是,如果没有内联或优化,const 引用可能有两个间接寻址 - 一个用于引用,第二个用于内部指针。
STL是怎么做到的?
我们通常按值传递 string_view
s。
C++20 草案中的示例: