首页 > 代码库 > stl源码为什么要大量使用typedef?

stl源码为什么要大量使用typedef?

SGI源码download,《stl源码剖析》里展示了vector的部分源码:

 1 template <class T, class Alloc = alloc>
 2 class vector {
 3 public:
 4   typedef T value_type;
 5   typedef value_type* pointer;
 6   typedef const value_type* const_pointer;
 7   typedef value_type* iterator;
 8   typedef const value_type* const_iterator;
 9   typedef value_type& reference;
10   typedef const value_type& const_reference;
11   typedef size_t size_type;
12   typedef ptrdiff_t difference_type;
13   

stl里的string menber types 里含有的value_type等也是类型别名,迭代器也是。如果是用户自定义一个string, T,T*的写法明显比value_type、pointer更方便。

stl源码为什么要大量使用typedef?