关于C ++ STL中的类型

时间:2017-02-01 17:41:24

标签: c++ gcc

这是从GCC STL位/ stl_vector.h

复制的
template<typename _Tp, typename _Alloc>
struct _Vector_base
{
  typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
    rebind<_Tp>::other _Tp_alloc_type;
  typedef typename __gnu_cxx::__alloc_traits<_Tp_alloc_type>::pointer
    pointer;

  struct _Vector_impl
  : public _Tp_alloc_type
  {
pointer _M_start;
pointer _M_finish;
pointer _M_end_of_storage;

_Vector_impl()
: _Tp_alloc_type(), _M_start(0), _M_finish(0), _M_end_of_storage(0)
{ }

我想知道_Tp_alloc_type()是什么意思? _Tp_alloc_type是一种类型,定义为

typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template
rebind<_Tp>::other _Tp_alloc_type;

1 个答案:

答案 0 :(得分:1)

  

我想知道_Tp_alloc_type()是什么意思?

正如您在此代码中看到的那样:

  struct _Vector_impl
  : public _Tp_alloc_type

_Vector_impl继承自_Tp_alloc_type代码:

_Vector_impl()
: _Tp_alloc_type() ...

表示:通过它的默认ctor

初始化基类_Tp_alloc_type