STL 源码中 template的作用?
最近在看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 {
...
}