3
Lambda闭包左值可以作为右值参考参数传递
我发现lvaluelambda闭包始终可以作为rvalue函数参数传递。 请参见以下简单演示。 #include <iostream> #include <functional> using namespace std; void foo(std::function<void()>&& t) { } int main() { // Case 1: passing a `lvalue` closure auto fn1 = []{}; foo(fn1); // works // Case 2: passing a `lvalue` function object std::function<void()> fn2 = []{}; foo(fn2); // compile error return 0; } …