memory_new_delete_resource
memory_new_delete_resource (std::pmr::new_delete_resource)
<memory_resource> 헤더에 정의되어 있어요. 전역 operator new와 operator delete를 사용해 메모리를 할당하는 memory_resource에 대한 포인터를 돌려줘요. C++17부터 도입됐어요.
출처: cppreference
본문
std::pmr::memory_resource* new_delete_resource() noexcept;
(C++17부터)
전역 operator new와 operator delete를 사용해 메모리를 할당하는 memory_resource에 대한 포인터를 돌려줘요.
반환값
std::pmr::memory_resource에서 파생된 타입의 정적 저장 기간 객체에 대한 포인터 p를 돌려줘요. 속성은 다음과 같아요.
allocate()함수는::operator new를 사용해 메모리를 할당해요.deallocate()함수는::operator delete를 사용해 메모리를 해제해요.- 어떤 메모리 리소스
r에 대해p->is_equal(r)은&r == p를 반환해요.
같은 값이 항상 반환되며, 어떤 메모리 리소스의 is_equal도 &r == p처럼 이 리소스와 비교 시 p를 반환하면 true예요. std::pmr::get_default_resource()의 초기값이 바로 이 리소스예요.
std::pmr::memory_resource* res = std::pmr::new_delete_resource();
std::pmr::vector<int> v(res); // new/delete 로 할당하는 벡터
이 리소스는 가장 일반적인 "그냥 new/delete 쓰는" 기본 전략으로, 딱히 특별한 풀링이나 캐싱을 하지 않아요.