考虑到移动语义,是否存在一种截断,它定义了通过引用而不是通过值传递更昂贵的时间?
我总是看到示例按值使用基本类型,并通过引用看一些示例class
。但是,如果我有一个小的struct
或一个小class
,那么通过值而不是引用来传递它们会更好吗?
截止日期在哪里?
答案 0 :(得分:1)
通过引用传递基本上是指针传递(在效率方面)。
指针/引用传递正在移动一个机器本机长度的数据(也就是:一个字,或32位机器上的32位等等)
因此,通过值传递小于或等于本机字的任何大小的数据将与通过指针/引用一样高效。
如果您的数据/对象大于此值,则需要多个周期才能将其中的每个单词复制到堆栈中。
当数据大小小于一个单词时,通过值传递没有获得效率。机器将执行一个副本,这个副本的长度与半个字一样长。