Udostępnij przez


allocator_base — Klasa

Definiuje klasę podstawową i typowe funkcje potrzebne do utworzenia alokatora zdefiniowanego przez użytkownika na podstawie filtru synchronizacji.

Składnia

template <class Type, class Sync>
class allocator_base

Parametry

Type
Typ elementów przydzielonych przez alokator.

Synchronizacji
Zasady synchronizacji dla alokatora, który jest klasą sync_none, klasą sync_per_container, klasą sync_per_thread lub klasą sync_shared.

Konstruktory

Konstruktor opis
allocator_base Tworzy obiekt typu allocator_base.

Typedefs

Nazwa typu opis
const_pointer Typ, który zapewnia stały wskaźnik do typu obiektu zarządzanego przez alokator.
Const_reference Typ, który zapewnia stałe odwołanie do typu obiektu zarządzanego przez alokator.
difference_type Podpisany typ całkowity, który może reprezentować różnicę między wartościami wskaźników do typu obiektu zarządzanego przez alokator.
Wskaźnik Typ, który dostarcza wskaźnik do typu obiektu zarządzanego przez alokator.
Odwołanie Typ, który zawiera odwołanie do typu obiektu zarządzanego przez alokator.
Size_type Niepodpisany typ całkowity, który może reprezentować długość dowolnej sekwencji, którą może przydzielić obiekt typu allocator_base .
Value_type Typ zarządzany przez alokator.

Funkcje składowe

Funkcja składowa opis
_Charalloc Przydziela magazyn dla tablicy typu char.
_Chardealloc Zwalnia magazyn dla tablicy zawierającej elementy typu char.
Adres Znajduje adres obiektu, którego wartość jest określona.
allocate Przydziela blok pamięci wystarczająco duży, aby przechowywać co najmniej określoną liczbę elementów.
Konstruowania Konstruuje określony typ obiektu pod określonym adresem zainicjowanym przy użyciu określonej wartości.
Deallocate Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji.
Zniszczyć Wywołuje destruktor obiektów bez cofnięcia przydziału pamięci, w której był przechowywany obiekt.
Max_size Zwraca liczbę elementów typu Typ , które mogą zostać przydzielone przez obiekt alokatora klas przed użyciem wolnej pamięci.

Wymagania

Nagłówek:<alokatory>

Przestrzeń nazw: stdext

allocator_base::_Charalloc

Przydziela magazyn dla tablicy typu char.

char *_Charalloc(size_type count);

Parametry

count
Liczba elementów w tablicy do przydzielenia.

Wartość zwracana

Wskaźnik do przydzielonego obiektu.

Uwagi

Ta funkcja składowa jest używana przez kontenery podczas kompilatora, który nie może skompilować ponownie powiązania. Implementuje _Charalloc on alokator zdefiniowany przez użytkownika, zwracając wynik wywołania funkcji allocate filtru synchronizacji.

allocator_base::_Chardealloc

Zwalnia magazyn dla tablicy zawierającej elementy typu char.

void _Chardealloc(void* ptr, size_type count);

Parametry

ptr
Wskaźnik do pierwszego obiektu, który ma zostać cofnięty z magazynu.

count
Liczba obiektów do cofnięcia przydziału z magazynu.

Uwagi

Ta funkcja składowa jest używana przez kontenery podczas kompilatora, który nie może skompilować ponownie powiązania. Implementuje _Chardealloc on alokator zdefiniowany przez użytkownika przez wywołanie deallocate funkcji filtru synchronizacji. Wskaźnik ptr musi być wcześniej zwracany przez wywołanie _Charalloc metody dla obiektu alokatora, który porównuje wartość równą *this, przydzielając obiekt tablicy o tym samym rozmiarze i typie. _Chardealloc nigdy nie zgłasza wyjątku.

allocator_base::address

Znajduje adres obiektu, którego wartość jest określona.

pointer address(reference val);

const_pointer address(const_reference val);

Parametry

Val
Wartość const lub nonconst obiektu, którego adres jest wyszukiwany.

Wartość zwracana

Wskaźnik const lub nonconst do obiektu znalezionego odpowiednio, const lub nonconst wartości.

Uwagi

Ta funkcja składowa jest implementowana dla alokatora zdefiniowanego przez użytkownika przez zwrócenie elementu &val.

allocator_base::przydziel

Przydziela blok pamięci wystarczająco duży, aby przechowywać co najmniej określoną liczbę elementów.

template <class Other>
pointer allocate(size_type _Nx, const Other* _Hint = 0);

pointer allocate(size_type _Nx);

Parametry

_Nx
Liczba elementów w tablicy do przydzielenia.

_Wskazówka
Ten parametr jest ignorowany.

Wartość zwracana

Wskaźnik do przydzielonego obiektu.

Uwagi

Funkcja składowa implementuje alokację pamięci dla alokatora zdefiniowanego przez użytkownika, zwracając wynik wywołania allocate funkcji filtru synchronizacji typu * , jeśli _Nx == 1w przeciwnym razie zwraca wynik wywołania operator new(_Nx * sizeof(Type)) rzutowania na typ Typ *.

allocator_base::allocator_base

Tworzy obiekt typu allocator_base.

allocator_base();

template <class Other>
allocator_base(const allocator_base<Other, Sync>& right);

Parametry

Prawo
Obiekt alokatora do skopiowania.

Uwagi

Pierwszy konstruktor tworzy wystąpienie allocator_base . Drugi konstruktor konstruuje allocator_base wystąpienie tak, aby dla dowolnego allocator_base<Type, _Sync> wystąpienia a, allocator_base<Type, Sync>(allocator_base<Other, Sync>(a)) == a.

allocator_base::const_pointer

Typ, który zapewnia stały wskaźnik do typu obiektu zarządzanego przez alokator.

typedef const Type *const_pointer;

allocator_base::const_reference

Typ, który zapewnia stałe odwołanie do typu obiektu zarządzanego przez alokator.

typedef const Type& const_reference;

allocator_base::construct

Konstruuje określony typ obiektu pod określonym adresem zainicjowanym przy użyciu określonej wartości.

void construct(pointer ptr, const Type& val);

Parametry

ptr
Wskaźnik do lokalizacji, w której ma zostać skonstruowany obiekt.

Val
Wartość, za pomocą której tworzony obiekt ma zostać zainicjowany.

Uwagi

Ta funkcja składowa jest implementowana dla alokatora zdefiniowanego przez użytkownika przez wywołanie metody new((void*)ptr Type(val).

allocator_base::d eallocate

Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji.

void deallocate(pointer ptr, size_type _Nx);

Parametry

ptr
Wskaźnik do pierwszego obiektu, który ma zostać cofnięty z magazynu.

_Nx
Liczba obiektów do cofnięcia przydziału z magazynu.

Uwagi

Ta funkcja składowa jest implementowana dla alokatora zdefiniowanego przez użytkownika przez wywołanie deallocate(ptr) filtru Sync synchronizacji, jeśli _Nx == 1w przeciwnym razie wywołaj metodę operator delete(_Nx * ptr).

allocator_base::d estroy

Wywołuje destruktor obiektów bez cofnięcia przydziału pamięci, w której był przechowywany obiekt.

void destroy(pointer ptr);

Parametry

ptr
Wskaźnik wyznaczający adres obiektu do zniszczenia.

Uwagi

Ta funkcja składowa jest implementowana dla alokatora zdefiniowanego przez użytkownika przez wywołanie metody ptr->~Type().

allocator_base::d ifference_type

Podpisany typ całkowity, który może reprezentować różnicę między wartościami wskaźników do typu obiektu zarządzanego przez alokator.

typedef std::ptrdiff_t difference_type;

allocator_base::max_size

Zwraca liczbę elementów typu Type , które mogą być przydzielane przez obiekt alokatora klas przed użyciem wolnej pamięci.

size_type max_size() const;

Wartość zwracana

Liczba elementów, które można przydzielić.

Uwagi

Ta funkcja składowa jest implementowana dla alokatora zdefiniowanego przez użytkownika, zwracając (size_t)-1 / sizeof(Type) wartość , jeśli 0 < (size_t)-1 / sizeof(Type)w przeciwnym razie 1.

allocator_base::p inter

Typ, który dostarcza wskaźnik do typu obiektu zarządzanego przez alokator.

typedef Type *pointer;

allocator_base::reference

Typ, który zawiera odwołanie do typu obiektu zarządzanego przez alokator.

typedef Type& reference;

allocator_base::size_type

Niepodpisany typ całkowity, który może reprezentować długość dowolnej sekwencji, którą może przydzielić obiekt typu allocator_base .

typedef std::size_t size_type;

allocator_base::value_type

Typ zarządzany przez alokator.

typedef Type value_type;

Zobacz też

<Allocators>