C ++ 14支持通用lambda。但是,以下代码被clang 3.4拒绝。
#include <utility>
void f(int);
void f(int&);
int main()
{
[](auto&& v) { f(std::forward<auto>(v)); }(8); // error
}
如何在通用lambda中完美地转发auto&&
?
答案 0 :(得分:28)
auto
不是一个类型所以我并不感到惊讶这不起作用。但你不能使用decltype
吗?
[](auto&& v) { f(std::forward<decltype(v)>(v)); }(8);