这个问题你要弄懂,估计得分三小点各个击破:
1 开头的typename 是模板的语法约束,告诉编译器接下来是个类型
2 std库里traits的概念。以及traits里定义value 、type 的常规手法
3 allocator的实现手法,也是std库基础设施。string vector里都要用。
1和2,Effective cpp里最后一部分,Item 50以后吧,有讲。
3的话,估计得看源码剖析类文章和书。查查侯捷的《Stl源码剖析》
公司培训时请他来讲过“内存分配”专题,提到过allocator的套路。
模糊记得rebind就是为了实现类型传递,把string的T,告诉allocator。
因为不是那课的重点,没关注。当时重点是讲把free list,挂上各种尺寸的内存类型块,以及回收。
实在没搞懂你想问啥。网上有篇“如何提问”,你搜下看看。对长期做程序员
有帮助。
【 在 xingco123 的大作中提到: 】
: xxx是模板类型简称
--
修改:DoorWay FROM 1.86.58.*
FROM 1.86.58.*