#include <iostream>
using namespace std;
auto mpaip(int a, int b) { // 函数的返回值是一个函数
return [a, b](auto c) {return c(a, b); };
}
int first(int a, int b) { return a; }
int second(int a, int b) { return b; }
int main()
{
auto pp = mpaip(1, 2); //返回一个变量pp,是一个函数
auto pa = pp(first); // auto pa=mpair(1,2)(first);
auto pb = pp(second);
cout << pa << ":" << pb << endl; //1:2
auto pp2 = mpaip(3, 4); //返回一个变量pp,是一个函数
auto pa2 = pp2(first); // auto pa=mpair(3,4)(first);
auto pb2 = pp2(second);
cout << pa2 << ":" << pb2 << endl; //3:4
getchar();
return 0;
}
#include <iostream>
using namespace std;
int main()
{
auto f = [](int in) {
int t = 3;
return [=](int x) {return in + t + x; };
};
auto fx = f(3);
auto f1 = fx(4);
auto f2 = fx(5);
cout << f1 << ":" << f2 << endl; //10:11 (3+3+4:3+3+5)
getchar();
return 0;
}