다음을 통해 공유


allocator_base 클래스

동기화 필터에서 사용자 정의 할당자를 만드는 데 필요한 기본 클래스 및 일반 함수를 정의합니다.

구문

template <class Type, class Sync>
class allocator_base

매개 변수

Type
할당자에 의해 할당된 요소 형식입니다.

동기화
할당자에 대한 동기화 정책, 즉 sync_none 클래스, sync_per_container 클래스, sync_per_thread 클래스 또는 sync_shared 클래스입니다.

생성자

생성자 Description
allocator_base allocator_base 형식의 개체를 생성합니다.

Typedef

형식 이름 설명
const_pointer 할당자에 의해 관리되는 개체 형식에 대한 상수 포인터를 제공하는 형식입니다.
const_reference 할당자에 의해 관리되는 개체 형식에 대한 상수 참조를 제공하는 형식입니다.
difference_type 할당자에 의해 관리되는 개체 형식에 대한 포인터 값의 차이를 나타낼 수 있는 부호 있는 정수 형식입니다.
pointer 할당자에 의해 관리되는 개체 형식에 대한 포인터를 제공하는 형식입니다.
reference 할당자에 의해 관리되는 개체 형식에 대한 참조를 제공하는 형식입니다.
size_type 형식 개체가 할당할 수 있는 시퀀스의 길이를 나타낼 수 있는 부호 없는 정수 계열 형식 allocator_base 입니다.
value_type 할당자에 의해 관리되는 형식입니다.

멤버 함수

멤버 함수 설명
_Charalloc char 형식의 배열에 대한 스토리지를 할당합니다.
_Chardealloc char 형식의 요소를 포함하는 배열에 대한 스토리지를 해제합니다.
address 값이 지정된 개체의 주소를 찾습니다.
allocate 적어도 지정된 개수의 요소를 저장할 수 있을 만큼 큰 메모리 블록을 할당합니다.
construct 지정된 값으로 초기화된 특정 형식의 개체를 지정된 주소에 생성합니다.
deallocate 지정된 위치부터 시작하여 스토리지에서 지정된 개수의 개체를 해제합니다.
destroy 개체가 저장된 메모리 할당을 취소하지 않고 개체 소멸자를 호출합니다.
max_size 사용 가능한 메모리가 모두 사용되기 전에 allocator 클래스의 개체가 할당할 수 있는 Type 형식의 요소 수를 반환합니다.

요구 사항

헤더:<할당자>

네임스페이스: stdext

allocator_base::_Charalloc

char 형식의 배열에 대한 스토리지를 할당합니다.

char *_Charalloc(size_type count);

매개 변수

count
할당할 배열의 요소 수입니다.

Return Value

할당된 개체에 대한 포인터입니다.

설명

이 멤버 함수는 다시 바인딩을 컴파일할 수 없는 컴파일러로 컴파일할 때 컨테이너에서 사용됩니다. 동기화 필터의 allocate 함수에 대한 호출 결과를 반환하여 사용자 정의 할당자에 대해 _Charalloc를 구현합니다.

allocator_base::_Chardealloc

char 형식의 요소를 포함하는 배열에 대한 스토리지를 해제합니다.

void _Chardealloc(void* ptr, size_type count);

매개 변수

ptr
스토리지에서 할당을 취소할 첫 번째 개체에 대한 포인터입니다.

count
스토리지에서 할당을 취소할 개체의 수입니다.

설명

이 멤버 함수는 다시 바인딩을 컴파일할 수 없는 컴파일러로 컴파일할 때 컨테이너에서 사용됩니다. 동기화 필터의 deallocate 함수를 호출하여 사용자 정의 할당자에 대해 _Chardealloc를 구현합니다. *this와 같은지를 비교하여 같은 크기와 형식의 배열 개체를 할당하는 할당자 개체에 대해 _Charalloc를 호출함으로써 포인터 ptr이 이미 반환된 상태여야 합니다. _Chardealloc은 예외를 throw할 수 없습니다.

allocator_base::address

값이 지정된 개체의 주소를 찾습니다.

pointer address(reference val);

const_pointer address(const_reference val);

매개 변수

val
주소를 검색하는 개체의 const 또는 nonconst 값입니다.

Return Value

각각 const 또는 nonconst 값으로 발견된 개체에 대한 const 또는 nonconst 포인터입니다.

설명

이 멤버 함수는 &val을 반환함으로써 사용자 정의 할당자에 대해 구현됩니다.

allocator_base::allocate

적어도 지정된 개수의 요소를 저장할 수 있을 만큼 큰 메모리 블록을 할당합니다.

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

pointer allocate(size_type _Nx);

매개 변수

_Nx
할당할 배열의 요소 수입니다.

_Hint
이 매개 변수는 무시됩니다.

Return Value

할당된 개체에 대한 포인터입니다.

설명

_Nx == 1인 경우 멤버 함수는 Type * 형식의 동기화 필터의 allocate 함수에 대한 호출 결과를 반환하여 사용자 정의 할당자에 대한 메모리 할당을 구현합니다. 아닌 경우 호출 결과를 operator new(_Nx * sizeof(Type))으로 반환하여 Type * 형식으로 캐스팅합니다.

allocator_base::allocator_base

allocator_base 형식의 개체를 생성합니다.

allocator_base();

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

매개 변수

right
복사할 할당자 개체입니다.

설명

첫 번째 생성자는 allocator_base 인스턴스를 생성합니다. 두 번째 생성자는 임의의 allocator_base<Type, _Sync> 인스턴스 a, allocator_base<Type, Sync>(allocator_base<Other, Sync>(a)) == a에 대해 allocator_base 인스턴스를 생성합니다.

allocator_base::const_pointer

할당자에 의해 관리되는 개체 형식에 대한 상수 포인터를 제공하는 형식입니다.

typedef const Type *const_pointer;

allocator_base::const_reference

할당자에 의해 관리되는 개체 형식에 대한 상수 참조를 제공하는 형식입니다.

typedef const Type& const_reference;

allocator_base::construct

지정된 값으로 초기화된 특정 형식의 개체를 지정된 주소에 생성합니다.

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

매개 변수

ptr
개체를 생성할 위치에 대한 포인터입니다.

val
생성되는 개체를 초기화할 값입니다.

설명

이 멤버 함수는 new((void*)ptr Type(val)을 호출함으로써 사용자 정의 할당자에 대해 구현됩니다.

allocator_base::d올로세이트

지정된 위치부터 시작하여 스토리지에서 지정된 개수의 개체를 해제합니다.

void deallocate(pointer ptr, size_type _Nx);

매개 변수

ptr
스토리지에서 할당을 취소할 첫 번째 개체에 대한 포인터입니다.

_Nx
스토리지에서 할당을 취소할 개체의 수입니다.

설명

이 멤버 함수는 _Nx == 1인 경우 동기화 필터 Sync에서 deallocate(ptr)를 호출하고, 아닌 경우 operator delete(_Nx * ptr)를 호출함으로써 사용자 정의 할당자에 대해 구현됩니다.

allocator_base::d estroy

개체가 저장된 메모리 할당을 취소하지 않고 개체 소멸자를 호출합니다.

void destroy(pointer ptr);

매개 변수

ptr
소멸될 개체의 주소를 지정하는 포인터입니다.

설명

이 멤버 함수는 ptr->~Type()을 호출함으로써 사용자 정의 할당자에 대해 구현됩니다.

allocator_base::d ifference_type

할당자에 의해 관리되는 개체 형식에 대한 포인터 값의 차이를 나타낼 수 있는 부호 있는 정수 형식입니다.

typedef std::ptrdiff_t difference_type;

allocator_base::max_size

사용 가능한 메모리가 모두 사용되기 전에 allocator 클래스의 개체가 할당할 수 있는 Type 형식의 요소 수를 반환합니다.

size_type max_size() const;

Return Value

할당할 수 있는 요소의 수입니다.

설명

이 멤버 함수는 0 < (size_t)-1 / sizeof(Type)인 경우 (size_t)-1 / sizeof(Type), 아닌 경우 1을 반환함으로써 사용자 정의 할당자에 대해 구현됩니다.

allocator_base::p오인터

할당자에 의해 관리되는 개체 형식에 대한 포인터를 제공하는 형식입니다.

typedef Type *pointer;

allocator_base::reference

할당자에 의해 관리되는 개체 형식에 대한 참조를 제공하는 형식입니다.

typedef Type& reference;

allocator_base::size_type

형식 개체가 할당할 수 있는 시퀀스의 길이를 나타낼 수 있는 부호 없는 정수 계열 형식 allocator_base 입니다.

typedef std::size_t size_type;

allocator_base::value_type

할당자에 의해 관리되는 형식입니다.

typedef Type value_type;

참고 항목

<allocators>