这是从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;
答案 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