Chinaunix首页 | 论坛 | 博客
  • 博客访问: 48056
  • 博文数量: 13
  • 博客积分: 1497
  • 博客等级: 上尉
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-04 00:03
文章分类
文章存档

2011年(1)

2010年(1)

2009年(11)

我的朋友

分类: C/C++

2009-02-20 22:59:22

class NullClass
{
};

template<typename V,typename T=NullClass>
class Model
{
};

template<typename V>
class Model<V,NullClass>
{
};

我用Model,推导出来的是偏特化的实现,Model就是第一个了。我有一个需求就是原来的模版类只有一个参数,现在我想加一个,不影响原有代码的前提下老原有的还是原来的实现,如果提供了两个就用新的。上面是一个完美的解决方案。神奇的地方是只有一个参数时就使用默认的NullClass,然后再去推导就成了偏特化了。这个和函数的重载类似了,加参数是很方便的。
阅读(622) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~