VC6附带的标准库如下,其std::allocator实现如下:
template<class _Ty>
class allocator{
public:
typedef _SIZE size_type;
typedef _PDFT difference_type;
typedef _Ty _FARQ *pointer;
typedef _Ty value_type;
pointer allocate(size_type _N, const void*)
{ return (_Allocate((difference_type)_N,(pointer)0));}
void deallocate(void _FARQ *_P,size_type)
{operator delete(_P);}
};
template<class _Ty> inline
_Ty _FARQ *_Allocate(_PDFT _N,_Ty _FARQ *)
{
if(_N<0) _N=0;
return ((_Ty _FARQ*)operator new((_SIZT)_N * sizeof(_Ty)));
}
VC6里面没有做任何的精细化内存管理,就是把malloc换成allocate,同理deallocate。
以上来自侯捷老师视频仅用于学习。