/trunk/Lib/std/std_alloc.i
Swig | 77 lines | 49 code | 14 blank | 14 comment | 0 complexity | a017f0cab1ad935b28aa5cb04d209773 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- namespace std
- {
- /**
- * @brief The "standard" allocator, as per [20.4].
- *
- * The private _Alloc is "SGI" style. (See comments at the top
- * of stl_alloc.h.)
- *
- * The underlying allocator behaves as follows.
- * - __default_alloc_template is used via two typedefs
- * - "__single_client_alloc" typedef does no locking for threads
- * - "__alloc" typedef is threadsafe via the locks
- * - __new_alloc is used for memory requests
- *
- * (See @link Allocators allocators info @endlink for more.)
- */
- template<typename _Tp>
- class allocator
- {
- 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;
- template<typename _Tp1>
- struct rebind;
- allocator() throw();
-
- allocator(const allocator&) throw();
- template<typename _Tp1>
- allocator(const allocator<_Tp1>&) throw();
- ~allocator() throw();
-
- pointer
- address(reference __x) const;
-
- const_pointer
- address(const_reference __x) const;
-
- // NB: __n is permitted to be 0. The C++ standard says nothing
- // about what the return value is when __n == 0.
- _Tp*
- allocate(size_type __n, const void* = 0);
- // __p is not permitted to be a null pointer.
- void
- deallocate(pointer __p, size_type __n);
- size_type
- max_size() const throw();
- void construct(pointer __p, const _Tp& __val);
- void destroy(pointer __p);
- };
- template<>
- class allocator<void>
- {
- public:
- typedef size_t size_type;
- typedef ptrdiff_t difference_type;
- typedef void* pointer;
- typedef const void* const_pointer;
- typedef void value_type;
- template<typename _Tp1>
- struct rebind;
- };
- } // namespace std