通过引用或值传递(lambda或其他)函数对象

C++11: pass (lambda or other) function object by reference or value?

本文关键字:其他 函数 对象 lambda 引用 值传      更新时间:2023-10-16

这本来是这个问题的一部分:

将非const引用使用auto-keyword声明的lambda传递给std::函数形参类型

但是我决定把它单独写出来。

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

对于"lambda"s使用与作为参数的任何对象相同的规则。

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