std::pmr::monotonic_buffer_resource:: do_allocate
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Public member functions | ||||
| Protected member functions | ||||
|
monotonic_buffer_resource::do_allocate
|
||||
|
virtual
void
*
do_allocate
(
std::
size_t
bytes,
std::
size_t
alignment
)
;
|
(C++17부터) | |
저장소를 할당합니다.
현재 버퍼 에 지정된 크기와 정렬을 가진 블록을 수용할 수 있는 충분한 사용되지 않은 공간이 있는 경우, 현재 버퍼에서 반환 블록을 할당합니다.
그렇지 않으면, 이 함수는
upstream_resource
(
)
-
>
allocate
(
n, m
)
를 호출하여 새로운 버퍼를 할당합니다. 여기서
n
은
bytes
와
다음 버퍼 크기
중 더 큰 값보다 작지 않고,
m
은
alignment
보다 작지 않습니다. 이 함수는 새 버퍼를
현재 버퍼
로 설정하고, 구현에서 정의된 성장 계수(반드시 정수일 필요는 없음)만큼
다음 버퍼 크기
를 증가시킨 다음, 새로 할당된 버퍼에서 반환 블록을 할당합니다.
반환값
지정된 alignment 가 지원되는 경우 해당 정렬 방식으로, 그렇지 않은 경우 alignof ( std:: max_align_t ) 로 정렬된, 최소 bytes 바이트 크기의 할당된 저장 공간에 대한 포인터.
예외
allocate()
를 상류 메모리 리소스에서 호출할 때 예외를 던지지 않는 한, 아무것도 던지지 않습니다.
참고 항목
|
메모리 할당
(
std::pmr::memory_resource
의
public 멤버 함수)
|
|
|
[virtual]
|
메모리 할당
(
std::pmr::memory_resource
의
virtual private 멤버 함수)
|