为了账号安全,请及时绑定邮箱和手机立即绑定

请问传递Constd:String&作为参数的日子结束了吗?

请问传递Constd:String&作为参数的日子结束了吗?

C++
江户川乱折腾 2019-08-02 11:02:37
传递Constd:String&作为参数的日子结束了吗?我最近听了赫伯·萨特的一次演讲,他提出了放弃的理由std::vector和std::string通过const &基本上都不见了。他建议,现在最好编写如下这样的函数:std::string do_something ( std::string inval ){    std::string return_val;    // ... do stuff ...    return return_val;}我知道return_val将是函数返回点处的一个rvalue,因此可以使用Move语义返回,这非常便宜。然而,inval仍然比引用的大小大得多(引用通常是作为指针实现的)。这是因为std::string具有各种组件,包括指向堆的指针和成员。char[]用于短字符串优化。因此,在我看来,通过参考仍然是一个好主意。有人能解释赫伯为什么这么说吗?
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 395 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信