Introduction
This file is a GNU extension to the Standard C++ Library.
Functions
- 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>&)
Discussion
@brief An allocator that uses previously allocated memory.
This memory can be externally, globally, or otherwise allocated.
|
Did this document help you? |
Yes: Tell us what works for you.
|
|
Last Updated: 2006-06-20