ADC Home > Reference Library > Reference > Darwin > Miscellaneous User Space API Reference

 


ext/array_allocator.h

Includes:
<cstddef>
<new>
<bits/functexcept.h>
<tr1/array>

Introduction

This file is a GNU extension to the Standard C++ Library.



Functions

operator rebind

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.

Last Updated: 2006-06-20