在C++ 03中,表达式是rvalue或lvalue.
在C++ 11中,表达式可以是:
两类已成为五大类.
使用函数,可以编写:
template <class T> void f(T&& x) {myfunction(std::forward<T>(x));}
Run Code Online (Sandbox Code Playgroud)
但是有了lambda,我们没有T:
auto f = [](auto&& x){myfunction(std::forward</*?*/>(x));}
Run Code Online (Sandbox Code Playgroud)
如何在lambda中完美转发?是否decltype(x)可以作为类型std::forward?