9

这最初是这个问题的一部分:

通过非常量引用将使用自动关键字声明的 lambda 作为参数传递给 std::function 参数类型

但我决定将其单独制作。

在什么情况下通过引用或值传递 lambda 或其他函数对象更好/更惯用?

4

1 回答 1

13

您对“lambda”使用与作为参数的任何对象相同的规则。

如果函数的目的是为调用者修改对象,则函数应该使用非常量引用。const&如果该函数只是使用对象而不更改它,则应该使用该函数。如果要将对象复制/移动到其内部存储中,它应该按值传递。

于 2013-04-13T05:39:12.237 回答