libstdc++
__gnu_cxx::_ExtPtr_allocator< _Tp > Class Template Reference

#include <extptr_allocator.h>

Public Types

typedef _Pointer_adapter< _Relative_pointer_impl< const _Tp > > const_pointer
 
typedef const _Tp & const_reference
 
typedef std::ptrdiff_t difference_type
 
typedef _Pointer_adapter< _Relative_pointer_impl< _Tp > > pointer
 
typedef _Tp & reference
 
typedef std::size_t size_type
 
typedef _Tp value_type
 

Public Member Functions

 _ExtPtr_allocator (const _ExtPtr_allocator &__rarg) noexcept
 
template<typename _Up >
 _ExtPtr_allocator (const _ExtPtr_allocator< _Up > &__rarg) noexcept
 
const std::allocator< _Tp > & _M_getUnderlyingImp () const
 
const_pointer address (const_reference __x) const noexcept
 
pointer address (reference __x) const noexcept
 
pointer allocate (size_type __n, const void *=0)
 
template<typename _Up , typename... _Args>
void construct (_Up *__p, _Args &&... __args)
 
template<typename... _Args>
void construct (pointer __p, _Args &&... __args)
 
void deallocate (pointer __p, size_type __n)
 
template<typename _Up >
void destroy (_Up *__p)
 
void destroy (pointer __p)
 
size_type max_size () const noexcept
 
bool operator!= (const _ExtPtr_allocator &__rarg) const
 
template<typename _Up >
bool operator!= (const _ExtPtr_allocator< _Up > &__rarg) const
 
bool operator== (const _ExtPtr_allocator &__rarg) const
 
template<typename _Up >
bool operator== (const _ExtPtr_allocator< _Up > &__rarg) const
 

Friends

template<typename _Up >
void swap (_ExtPtr_allocator< _Up > &, _ExtPtr_allocator< _Up > &)
 

Detailed Description

template<typename _Tp>
class __gnu_cxx::_ExtPtr_allocator< _Tp >

An example allocator which uses a non-standard pointer type.

This allocator specifies that containers use a 'relative pointer' as it's pointer type. (See ext/pointer.h) Memory allocation in this example is still performed using std::allocator.

Definition at line 56 of file extptr_allocator.h.

Member Typedef Documentation

◆ const_pointer

template<typename _Tp >
typedef _Pointer_adapter<_Relative_pointer_impl<const _Tp> > __gnu_cxx::_ExtPtr_allocator< _Tp >::const_pointer

Definition at line 65 of file extptr_allocator.h.

◆ const_reference

template<typename _Tp >
typedef const _Tp& __gnu_cxx::_ExtPtr_allocator< _Tp >::const_reference

Definition at line 68 of file extptr_allocator.h.

◆ difference_type

template<typename _Tp >
typedef std::ptrdiff_t __gnu_cxx::_ExtPtr_allocator< _Tp >::difference_type

Definition at line 60 of file extptr_allocator.h.

◆ pointer

template<typename _Tp >
typedef _Pointer_adapter<_Relative_pointer_impl<_Tp> > __gnu_cxx::_ExtPtr_allocator< _Tp >::pointer

Definition at line 63 of file extptr_allocator.h.

◆ reference

template<typename _Tp >
typedef _Tp& __gnu_cxx::_ExtPtr_allocator< _Tp >::reference

Definition at line 67 of file extptr_allocator.h.

◆ size_type

template<typename _Tp >
typedef std::size_t __gnu_cxx::_ExtPtr_allocator< _Tp >::size_type

Definition at line 59 of file extptr_allocator.h.

◆ value_type

template<typename _Tp >
typedef _Tp __gnu_cxx::_ExtPtr_allocator< _Tp >::value_type

Definition at line 69 of file extptr_allocator.h.

Constructor & Destructor Documentation

◆ _ExtPtr_allocator() [1/3]

template<typename _Tp >
__gnu_cxx::_ExtPtr_allocator< _Tp >::_ExtPtr_allocator ( )
inlinenoexcept

Definition at line 75 of file extptr_allocator.h.

◆ _ExtPtr_allocator() [2/3]

template<typename _Tp >
__gnu_cxx::_ExtPtr_allocator< _Tp >::_ExtPtr_allocator ( const _ExtPtr_allocator< _Tp > &  __rarg)
inlinenoexcept

Definition at line 78 of file extptr_allocator.h.

◆ _ExtPtr_allocator() [3/3]

template<typename _Tp >
template<typename _Up >
__gnu_cxx::_ExtPtr_allocator< _Tp >::_ExtPtr_allocator ( const _ExtPtr_allocator< _Up > &  __rarg)
inlinenoexcept

Definition at line 82 of file extptr_allocator.h.

◆ ~_ExtPtr_allocator()

template<typename _Tp >
__gnu_cxx::_ExtPtr_allocator< _Tp >::~_ExtPtr_allocator ( )
inlinenoexcept

Definition at line 86 of file extptr_allocator.h.

Member Function Documentation

◆ _M_getUnderlyingImp()

template<typename _Tp >
const std::allocator< _Tp > & __gnu_cxx::_ExtPtr_allocator< _Tp >::_M_getUnderlyingImp ( ) const
inline

Definition at line 158 of file extptr_allocator.h.

◆ address() [1/2]

template<typename _Tp >
const_pointer __gnu_cxx::_ExtPtr_allocator< _Tp >::address ( const_reference  __x) const
inlinenoexcept

Definition at line 92 of file extptr_allocator.h.

◆ address() [2/2]

template<typename _Tp >
pointer __gnu_cxx::_ExtPtr_allocator< _Tp >::address ( reference  __x) const
inlinenoexcept

Definition at line 89 of file extptr_allocator.h.

◆ allocate()

template<typename _Tp >
pointer __gnu_cxx::_ExtPtr_allocator< _Tp >::allocate ( size_type  __n,
const void *  = 0 
)
inline

Definition at line 95 of file extptr_allocator.h.

◆ construct() [1/2]

template<typename _Tp >
template<typename _Up , typename... _Args>
void __gnu_cxx::_ExtPtr_allocator< _Tp >::construct ( _Up *  __p,
_Args &&...  __args 
)
inline

Definition at line 107 of file extptr_allocator.h.

◆ construct() [2/2]

template<typename _Tp >
template<typename... _Args>
void __gnu_cxx::_ExtPtr_allocator< _Tp >::construct ( pointer  __p,
_Args &&...  __args 
)
inline

Definition at line 112 of file extptr_allocator.h.

◆ deallocate()

template<typename _Tp >
void __gnu_cxx::_ExtPtr_allocator< _Tp >::deallocate ( pointer  __p,
size_type  __n 
)
inline

Definition at line 98 of file extptr_allocator.h.

◆ destroy() [1/2]

template<typename _Tp >
template<typename _Up >
void __gnu_cxx::_ExtPtr_allocator< _Tp >::destroy ( _Up *  __p)
inline

Definition at line 117 of file extptr_allocator.h.

◆ destroy() [2/2]

template<typename _Tp >
void __gnu_cxx::_ExtPtr_allocator< _Tp >::destroy ( pointer  __p)
inline

Definition at line 120 of file extptr_allocator.h.

◆ max_size()

template<typename _Tp >
size_type __gnu_cxx::_ExtPtr_allocator< _Tp >::max_size ( ) const
inlinenoexcept

Definition at line 101 of file extptr_allocator.h.

◆ operator!=() [1/2]

template<typename _Tp >
bool __gnu_cxx::_ExtPtr_allocator< _Tp >::operator!= ( const _ExtPtr_allocator< _Tp > &  __rarg) const
inline

Definition at line 148 of file extptr_allocator.h.

◆ operator!=() [2/2]

template<typename _Tp >
template<typename _Up >
bool __gnu_cxx::_ExtPtr_allocator< _Tp >::operator!= ( const _ExtPtr_allocator< _Up > &  __rarg) const
inline

Definition at line 144 of file extptr_allocator.h.

◆ operator==() [1/2]

template<typename _Tp >
bool __gnu_cxx::_ExtPtr_allocator< _Tp >::operator== ( const _ExtPtr_allocator< _Tp > &  __rarg) const
inline

Definition at line 138 of file extptr_allocator.h.

◆ operator==() [2/2]

template<typename _Tp >
template<typename _Up >
bool __gnu_cxx::_ExtPtr_allocator< _Tp >::operator== ( const _ExtPtr_allocator< _Up > &  __rarg) const
inline

Definition at line 134 of file extptr_allocator.h.


The documentation for this class was generated from the following file: