首页 > 其他 > 详细

测试functional的bind以及相关功能

时间:2014-05-07 02:32:58      阅读:380      评论:0      收藏:0      [点我收藏+]

 

注:在VS2010 UPDATE1下测试通过

bubuko.com,布布扣
 1 /*测试functional的bind以及相关功能*/
 2 
 3 #include <iostream>
 4 #include <functional>
 5 
 6 using namespace std;
 7 using namespace std::placeholders;
 8 
 9 int TestAdd(int a, int b)
10 {
11     return a+b;
12 }
13 bool TestCompare(int a, int b)
14 {
15     return a<b;
16 }
17 class TestBindClass
18 {
19 public:
20     bool operator() (const int &a, const int &b) const
21     {
22         cout << a << "<" << b << " ? " << ( a<b ? "true" : "false" ) << endl;
23         return a<b;
24     }
25     typedef int first_argument_type;
26     typedef int second_argument_type;
27     typedef bool result_type;
28 };
29 template <class T> struct greater1 
30 {
31     bool operator() (const T& x, const T& y) const 
32     {
33         cout << x << ">" << y << " ? " << ( x>y ? "true" : "false" ) << endl;
34         return x>y;
35     }
36     //void operator() (const T& a, const T& b) const {cout << "a<b ? " << ( a<b ? "true" : "false" ) << endl;}
37     typedef T first_argument_type;
38     typedef T second_argument_type;
39     typedef bool result_type;
40 };
41 
42 void main()
43 {
44     //test bind function
45     auto fcn1 = bind(TestAdd, 5, 10);
46     cout << fcn1() << endl;
47 
48     //test bind function
49     auto fcn2 = bind(TestCompare, _1, 5);
50     cout << fcn2(4) << endl;
51 
52     //test binder1st function
53     binder1st<greater1<int>> fcn4(greater1<int>(), 6);
54     cout << fcn4(7) << endl;
55 
56     //test binder1st function
57     binder1st<TestBindClass> fcn3(TestBindClass(), 5);
58     cout << fcn3(3) << endl;
59 }
bubuko.com,布布扣

 

测试functional的bind以及相关功能,布布扣,bubuko.com

测试functional的bind以及相关功能

原文:http://www.cnblogs.com/superstargg/p/3712113.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!