Chinaunix首页 | 论坛 | 博客
  • 博客访问: 240818
  • 博文数量: 52
  • 博客积分: 1355
  • 博客等级: 中尉
  • 技术积分: 485
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 12:23
文章分类

全部博文(52)

文章存档

2013年(5)

2012年(16)

2011年(26)

2010年(2)

2009年(1)

2008年(2)

我的朋友

分类: C/C++

2011-07-26 11:20:28

今天看stlport源码,看见一个宏定义_STLP_NO_CLASS_PARTIAL_SPECIALIZATION,找了半天原来是Template Partial Specialization,模板部分特化的意思,就是含有两个以上的模板参数的模板类,
编译器允许我们先实例化其中的一个参数。
举个例子:
template
class vector{
}
 
template
class Vector{
 
}
 
当然也可以只部分特化模板类的某个函数:
typedef MyAlloc;
template
class vector{
 
template
void removeAll(){
   MyAlloc::Deallocate((T*)&(*first));
}
}
 
当然直接偏特化namespace级别的函数也是不被允许的.
template
void Func(int index){
 
}
// 不合法的
template
void Fun(int index){
}
阅读(941) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~