C++14 通用 lambda 是否为语言带来了真正的改进,或者它们是一种语法糖?是否存在某些情况
[](auto param1, auto param2, /* ... */ auto paramN)
{
return /* ... */;
}
不能替换为
template <typename Type1, typename Type2, /* ... */ typename TypeN>
auto foo(Type1&& param1, Type2&& param2, /* ... */ TypeN&& paramN)
{
return /* ... */;
}
或者
struct bar
{
template <typename Type1, typename Type2, /* ... */ typename TypeN>
auto operator()(Type1&& param1, Type2&& param2, /* ... */ TypeN&& paramN)
{
return /* ... */;
}
};
?
@Kerrek SB在评论中提供了非常有趣的链接,说明了通用 lambda 的强大功能:
Boost.Hana:用于表达元编程的异构组合器(github)