背景

利用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的类型实际上是什么。


忆先
4.2k 声望45 粉丝

引用和评论

0 条评论