Spec-Zone .ru
спецификации, руководства, описания, API
|
ADC домой > Ссылочная библиотека> Ссылка> Дарвин> Разное пространство пользователя ссылка API
|
ext/array_allocator.h |
Включает: |
Этот файл является расширением GNU Стандартной Библиотеки C++.
оператор снова переплетает |
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 средство выделения, использующее ранее выделенную память. Эта память может быть внешне, глобально, или иначе выделена.
Последнее обновление: 20.06.2006