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

libstdc++

__gnu_cxx::_ExtPtr_allocator< _Tp > Class Template Reference
Utilities » Memory » Allocators

`#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

## 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 58 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 67 of file extptr_allocator.h.

## ◆ const_reference

template<typename _Tp>

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

Definition at line 70 of file extptr_allocator.h.

## ◆ difference_type

template<typename _Tp>

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

Definition at line 62 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 65 of file extptr_allocator.h.

## ◆ reference

template<typename _Tp>

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

Definition at line 69 of file extptr_allocator.h.

## ◆ size_type

template<typename _Tp>

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

Definition at line 61 of file extptr_allocator.h.

## ◆ value_type

template<typename _Tp>

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

Definition at line 71 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 77 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 80 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 84 of file extptr_allocator.h.

## ◆ ~_ExtPtr_allocator()

template<typename _Tp>

__gnu_cxx::_ExtPtr_allocator< _Tp >::~_ExtPtr_allocator | ( |  | ) |
| inlinenoexcept

Definition at line 88 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 160 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 94 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 91 of file extptr_allocator.h.

## ◆ allocate()

template<typename _Tp>

pointer __gnu_cxx::_ExtPtr_allocator< _Tp >::allocate | ( | size_type | __n,
|  | const void * | = 0 )
| inlinenodiscard

Definition at line 97 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 109 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 114 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 100 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 119 of file extptr_allocator.h.

## ◆ destroy() [2/2]

template<typename _Tp>

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

Definition at line 122 of file extptr_allocator.h.

## ◆ max_size()

template<typename _Tp>

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

Definition at line 103 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 140 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 136 of file extptr_allocator.h.

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

- extptr_allocator.h