背景
利用C++11/14的新特性写闭包变成了一个很优雅的事情。
代码
#include <iostream>
namespace hehe
{
auto print = [](auto x) -> void { std::cout << x << std::endl; };
auto add = [](auto x) -> auto
{
return [x](auto y) -> auto { return y + x; };
};
}
int main()
{
auto add5 = hehe::add(5);
auto add7 = hehe::add(7);
hehe::print(add5(2));
hehe::print(add7(-10));
hehe::print(hehe::add(1)(2));
return 0;
}
感想
类型推导符(auto)真是一个好东西,因为我也不知道lambda的类型实际上是什么。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。