56.lambda表達式與綁定以及偽函數和綁定
阿新 • • 發佈:2018-03-13
ostream style operator auto function esp namespace bsp lambda表達式
1 #include <iostream> 2 #include <functional> 3 using namespace std; 4 using namespace std::placeholders; 5 6 int add(int a, int b) 7 { 8 return a + b; 9 } 10 11 class myclass 12 { 13 public: 14 int operator()(int a, int b) 15 { 16 cout << "a = " << a << "b = " << b << endl; 17 return a + b; 18 } 19 }; 20 21 void main() 22 { 23 //函數包裝器 24 auto fun = bind(add, 10, 1); 25 cout << fun() << endl; 26 //lambda表達式與函數包裝器 27 auto fun1 = bind([](int a, int b)->int {return a + b; }, 100, _1); 28 cout << fun1(122) << endl; 29 30 myclass my1; 31 cout << my1(1, 1) << endl; 32 //偽函數和綁定 33 //綁定從左到右,可以指定可以不指定 34 auto fun3 = bind(my1, 100, _1); 35 fun3(4); 36 cin.get(); 37 }
56.lambda表達式與綁定以及偽函數和綁定