ADC Home > Reference Library > Reference > Darwin > Miscellaneous User Space API Reference
|
ext/array_allocator.h |
Includes: |
This file is a GNU extension to the Standard C++ Library.
operator rebind |
template<typename _Tp, typename _Array = std::tr1::array<_Tp> > class array_allocator : public array_allocator_base<_Tp> { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; typedef _Array array_type; array_type* _M_array; template<typename _Tp1, typename _Array1 = _Array> struct rebind { typedef array_allocator<_Tp1, _Array1> other; }; array_allocator( array_type* __array = NULL) throw() : _M_array(__array) { } array_allocator( const array_allocator& __o) throw() : _M_array(__o._M_array) { } template<typename _Tp1, typename _Array1> array_allocator( const array_allocator<_Tp1, _Array1>&) throw() : _M_array(NULL) { } ~array_allocator() throw() { } pointer allocate(size_type __n, const void* = 0) { static size_type __array_used; if ( _M_array == 0 || __array_used + __n > _M_array->size()) std::__throw_bad_alloc(); pointer __ret = _M_array->begin() + __array_used; __array_used += __n; return __ret; } }; template<typename _Tp, typename _Array> inline bool operator==( const array_allocator<_Tp, _Array>&, const array_allocator<_Tp, _Array>&)
@brief An allocator that uses previously allocated memory. This memory can be externally, globally, or otherwise allocated.