Namespaces
Variants

std::experimental::pmr::monotonic_buffer_resource:: do_allocate

From cppreference.net
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 멤버 함수)