S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

tuple进化

Posted on 2011-06-06 13:08 S.l.e!ep.¢% 阅读(332) 评论(0)  编辑 收藏 引用 所属分类: C++

模板的偏特例化

 1 #include <iostream>
 2 using namespace std;
 3 
 4 template <typename T>
 5 class cons
 6 {
 7 public:
 8     void test() 
 9     {
10         cout << "other typename" << endl; 
11     }
12 };
13 
14 template <>
15 class cons<int>
16 {
17 public:
18     void test() 
19     {
20         cout << "int typename" << endl; 
21     }
22 };
23 
24 int main()
25 {
26     cons<int> test1;
27     cons<double> test2;
28 
29     test1.test();
30     test2.test();
31 
32     return 0;
33 }
34 

简单的tuple版本
 1 #include <iostream>
 2 using namespace std;
 3 
 4 class null_type
 5 {};
 6 
 7 template <typename T1 = null_type, typename T2 = null_type>
 8 class cons
 9 {
10 public:
11     T1 value;
12     cons<T2> value_cons;
13 };
14 
15 template <>
16 class cons<null_type, null_type>
17 {
18 public:
19 };
20 
21 int main()
22 {
23     cons<int> test1;
24     cons<intint> test2;
25 
26     cout << sizeof(test1) << endl;
27     cout << sizeof(test2) << endl;
28 
29     return 0;
30 }
31 


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理