STL 源码中 template的作用?

kieran 2014-12-18 10:10:06
最近在看STL源码解析, 里面有讲到STL的Allocator, 有一个小问题不太理解, 求高手指导.
第57页给出了SGI STL中这样的定义:
template <int inst>
class __malloc_alloc_template {
.......
}

书上说, 这个定义中, 没有"template类型参数", 至于"非类型参数" inst则完全没有派上用场.
那SGI为什么还要用这个模板呢, 可不可以不用模板, 直接把这个类定义成普通类呢, 像这样:

class __malloc_alloc_template {
.......
}

问题的疑问,和 http://bbs.csdn.net/topics/380161530 一样, 但是回帖中没有真正的给出答案。


我的思考:
定义成模板,留有全特化的余地,留给以后提供不同实现策略的可能,如果写成普通的类,就比较难以继续扩张了. 不知道还有没有其他的原因 ?
template<>
class __malloc_alloc_template {
...
}




...全文
274 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yshuise 2014-12-20
  • 打赏
  • 举报
回复
同你的想法恰恰相反。 因为偏特化不能面面俱到,写不完全,这时候就用主模板了。
fly_dragon_fly 2014-12-20
  • 打赏
  • 举报
回复
不过既然当时没用到过,以及到现在可能到以后也不会用到,换成无模板的也无所谓了。当时怎么想的谁知道了,说不定是因为身边类都有模板,这个类没有感觉很怪异呗

64,687

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧