allocation_result — std::allocation_result
allocation_result — std::allocation_result
std::allocation_result는 할당 연산이 성공했을 때 반환해야 하는 값들을 묶은 템플릿 구조체예요. C++23에서 도입됐어요.
이 구조체는 두 개의 멤버를 가져요. 첫 번째는 할당된 메모리 블록의 시작 주소를 가리키는 포인터, 두 번째는 (요청된 크기와 다른) 실제 할당 크기예요. 할당 함수가 "요청보다 크게 줬다"는 정보를 함께 전달하려고 해요.
출처: cppreference
본문
std::allocation_result는 할당 결과 값을 저장하는 템플릿 구조체예요.
template<class Allocator>
struct allocation_result
{
Allocator::pointer ptr;
Allocator::size_type count;
};
ptr— 할당된 메모리 블록의 시작을 가리키는 포인터count— 실제로 할당된 요소의 수 (요청된 수와 다를 수 있어요)
이 구조체는 주로 allocate_at_least 같은 종류의 할당 함수에서, "할당된 메모리 주소"와 "실제 할당된 크기(요청보다 클 수 있음)"를 함께 반환하는 데 사용돼요. 호출자는 count를 보고 실제로 사용할 수 있는 메모리 양을 알 수 있어요.