inout_ptr_t_inout_ptr

inout_ptr_t_inout_ptr (std::inout_ptr)

<memory> 헤더에 정의되어 있어요. 참조로 재설정할 인자들을 포착한 inout_ptr_t를 추론된 템플릿 인자로 돌려주는 헬퍼 함수예요. C++23부터 도입됐어요.

출처: cppreference

본문

template< class Pointer = void, class Smart, class... Args >
auto inout_ptr( Smart& s, Args&&... args );

(C++23부터, constexpr since C++26)

재설정(reset)할 인자들을 참조로 포착하는, 템플릿 인자가 추론된 inout_ptr_t를 돌려줘요. 반환값의 구성(아래 참고)이 ill-formed이면 프로그램은 ill-formed예요.

매개변수

  • s: 적응시킬 객체(보통 스마트 포인터)
  • args: 포착할 재설정 인자들

반환값

std::inout_ptr_t<Smart, P, Args&&>(s, std::forward<Args>(args)...)를 돌려줘요. 여기서 P는:

  • Pointervoid가 아니면 Pointer,
  • 아니면 Smart::pointer가 유효하고 타입을 나타내면 그것,
  • 아니면 Smart::element_type* (만약 Smart::element_type이 유효하면),
  • 아니면 구현 정의 방식으로 결정된 타입.
std::unique_ptr<T> p;
// 외부 C 함수가 T** 로 소유권을 돌려줄 때
foo(std::inout_ptr(p));   // inout_ptr_t 를 생성해 전달

이 헬퍼는 외부 함수가 소유권을 재설정하는 패턴을 스마트 포인터에 적응시키는 데 사용해요.

더 알아보기 (Learn more)

cppreference