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