【问题标题】:How to pass std::string_view by value or by const reference如何通过值或常量引用传递 std::string_view
【发布时间】:2019-10-15 14:57:43
【问题描述】:

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

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

哪个更好?

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

但是,如果不进行内联或优化,const 引用可能有两种间接方式 - 一种用于 ref,第二种用于内部指针。

STL 是怎么做到的?

【问题讨论】:

  • 有趣的是,为什么不投反对票,没有评论?我可以详细说明两种方式至少 1 小时。
  • 一个向下,三个向上。 (我还不能称之为趋势,但是......);-)

标签: c++17 string-view


【解决方案1】:

我们通常按值传递string_views。

来自 C++20 草案的示例:

【讨论】:

  • 我正要问谁是“我们” :) 谢谢马歇尔!
  • 一些解释为什么这可能很好:)
猜你喜欢
  • 2023-03-09
  • 2021-12-29
  • 2011-06-20
  • 2013-09-10
  • 2013-08-01
  • 2015-03-28
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
相关资源
最近更新 更多