c++11使用function对象和lambda表达式实现返回函数的函数

#include<iostream>
#include<functional>

using namespace std;

function<int(int)> addn(int n)
{
    auto f = [=](int m){return m + n;};
    return f;
}

int main()
{
    function<int(int)> f = addn(3);
    cout << f(1) << endl;
    cout << f(10) << endl;

    auto g = addn(12);
    cout << g(1) << endl;
    cout << g(10) << endl;
}

 

posted @ 2013-09-01 15:59  半亩梨花  阅读(785)  评论(0编辑  收藏  举报