C++11: pass (lambda or other) function object by r

2019-01-26 08:05发布

This was originally part of this question:

Passing lambda declared using auto-keyword by non-const reference as argument to std::function parameter type

but I decided to make it a separate one.

In what circumstances is it better/more idiomatic to pass a lambda or other function object by reference or value?

1条回答
We Are One
2楼-- · 2019-01-26 08:36

You use the same rules for "lambda"s that you would for any object that you take as a parameter.

A function should use non-const reference if the intent of the function is to modify the object for the caller. The function should use const& if it is just using the object without changing it. And it should pass by value if it is going to copy/move the object into its internal storage.

查看更多
登录 后发表回答