通过引用或值传递(lambda或其他)函数对象
C++11: pass (lambda or other) function object by reference or value?
这本来是这个问题的一部分:
将非const引用使用auto-keyword声明的lambda传递给std::函数形参类型
但是我决定把它单独写出来。
在什么情况下通过引用或值传递lambda或其他函数对象更好/更习惯?
对于"lambda"s使用与作为参数的任何对象相同的规则。
如果函数的目的是为调用者修改对象,则应该使用非const引用。如果函数只是使用对象而不改变它,则应该使用const&
。如果要复制/移动对象到它的内部存储器中,它应该按值传递
相关文章:
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- C++变量名(可以将 main 声明为变量,但对于其他函数名称则不然)
- 如何封装一个函数,以便它只能由同一类中的一个其他函数调用?
- 为什么 ADL 的运算符函数行为与其他函数不同?
- 将其他函数中的变量用于主函数C++
- 使用函数打开文件,然后让其他函数利用该文件?
- 如何创建一个函数来执行其中的其他函数
- 是否可以将多个结构作为一个数据包存储在一个函数中,然后传递给其他函数并在那里提取?
- 变量 z 无法从其他函数访问变量 x
- 将 libstdc++ 和其他函数组合到一个库中
- 休眠函数,但不阻止其他函数和代码
- 我的代码只会运行主函数,其他函数不会在C++中编译
- 传递多个参数的功能,该函数将类包含到其他函数
- 仅一个功能的链接错误.在同一类和CPP文件中具有相似签名的其他函数工作正常
- 如果从在其他函数中调用的函数引发异常会发生什么情况
- 为什么在其他函数中声明的函数不参与参数相关查找?
- C++ - 有没有办法只继承一次某些函数,而其他函数在多次继承中多次继承?
- 我应该删除来自其他函数或类方法的指针吗?
- Windows表单如何使用其他函数回调图表信息
- 关于函数调用,我的程序没有读取我的其他函数。为什么?