CppCoreGuidelines表示由于从函数访问所需的一些开销,按值传递小对象(最多两个或三个字)比传递更快。你能解释一下,在这种情况下,究竟是什么开销呢?
答案 0 :(得分:5)
该文档还为您提供了解释 - 您引入了额外的间接方法。至少,您需要取消引用您不需要的指针。它还解释了哪些方法很快,哪些方法很慢(以及为什么)。
这并不意味着你必须关心 - 除非你处于代码的热门部分,否则差异并不重要。
答案 1 :(得分:4)
开销是这种引用涉及间接,通常使用指针在幕后实现。因此,您有一个解除引用操作,其权重不会与这么少量数据的任何明显好处叠加。
您链接的页面直译为:
当复制很便宜时,没有什么比复制的简单性和安全性更好,对于小对象(最多两个或三个单词),它也比通过引用传递更快,因为它不需要额外的间接来从函数访问