null_memory_resource — std::pmr::null_memory_resource

null_memory_resource — std::pmr::null_memory_resource

std::pmr::null_memory_resource는 아무 할당도 수행하지 않는 memory_resource에 대한 포인터를 반환하는 함수예요. <memory_resource> 헤더에 제공돼요.

이 자원의 allocate()는 항상 std::bad_alloc 예외를 던져요. 즉, 이 자원으로는 절대 메모리를 얻을 수 없어요. "할당 실패 경로"를 테스트하거나, 메모리 풀이 고갈되는 상황을 재현할 때 유용해요.

출처: cppreference

본문

std::pmr::null_memory_resource는 아무 할당도 하지 않는 메모리 자원을 반환해요.

std::pmr::memory_resource* null_memory_resource() noexcept;

std::pmr::memory_resource에서 파생된 정적 저장 기간 객체에 대한 포인터 p를 반환해요. 다음 속성을 가져요.

  • allocate()는 항상 std::bad_alloc을 던짐
  • deallocate()는 아무 효과가 없음
  • 어떤 memory_resource r에 대해 p->is_equal(r)&r == p를 반환

이 자원은 기본 자원이 아닌 독립적인 "할당 불가" 자원이에요. 예를 들어 풀 자원을 만들 때 초기 버퍼를 제공하지 않고 null_memory_resource를 업스트림으로 주면, 첫 할당부터 실패하는 상황을 테스트할 수 있어요. 예외 안전성을 검증할 때 유용해요.

같이 보기

  • std::new_delete_resource
  • std::pmr::memory_resource
  • std::pmr::monotonic_buffer_resource

더 알아보기 (Learn more)

cppreference