memory_get_temporary_buffer

memory_get_temporary_buffer (std::get_temporary_buffer)

<memory> 헤더에 정의되어 있어요. T 타입의 인접 객체 count개를 위한 초기화되지 않은 연속 저장 공간의 할당을 요청해요. 요청은 구속력이 없고, 구현이 다른 개수(0 포함)의 저장 공간을 할당할 수 있어요. C++20에서 제거됐어요.

출처: cppreference

본문

template< class T >
std::pair<T*, std::ptrdiff_t>
    get_temporary_buffer( std::ptrdiff_t count );        // until C++11

template< class T >
std::pair<T*, std::ptrdiff_t>
    get_temporary_buffer( std::ptrdiff_t count ) noexcept;  // since C++11, deprecated in C++17, removed in C++20

count가 음수이거나 0이면 아무 것도 하지 않아요. 그렇지 않으면 T 타입의 인접 객체 count개를 위한 초기화되지 않은 연속 저장 공간의 할당을 요청해요. 요청은 구속력이 없으며, 구현이 그 대신 다른 개수(0 포함)의 인접 T 객체 저장 공간을 할당할 수 있어요.

과정렬(over-aligned) 타입이 지원되는지는 구현 정의예요. (C++11)

매개변수

  • count: 요청할 임시 객체 수

반환값

할당한 저장 공간의 시작 포인터와 그 크기(바이트 수)를 담은 std::pair. count가 0이거나 음수이면 {nullptr, 0}을 돌려줘요.

이 함수는 deprecated되고 C++20에서 제거됐으며, std::allocator_traits::allocate나 컨테이너의 임시 버퍼 용도로 대체됐어요. 새 코드에서는 사용하지 않아요.

더 알아보기 (Learn more)

cppreference