Namespaces
Variants

std::out_ptr_t<Smart,Pointer,Args...>:: out_ptr_t

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
explicit out_ptr_t ( Smart & sp, Args... args ) ;
(1) (C++23 이후)
out_ptr_t ( const out_ptr_t & ) = delete ;
(2) (C++23 이후)
1) out_ptr_t 를 생성합니다. sp Smart & 멤버에 바인딩하는 것처럼 적응시키고, args... 의 모든 인수 t std:: forward < T > ( t ) Args... 의 해당 T 타입 멤버를 초기화하는 것처럼 캡처한 다음, 저장된 Pointer 를 값 초기화합니다.
그런 다음 해당 표현식이 형식에 맞는 경우 sp. reset ( ) 를 호출합니다. 그렇지 않으면 std:: is_default_constructible_v < Smart > true 인 경우 sp = Smart ( ) 를 호출합니다. 두 리셋 작업 모두 형식에 맞지 않는 경우 프로그램은 형식에 맞지 않습니다.
2) 복사 생성자가 명시적으로 삭제되었습니다. out_ptr_t 는 복사 가능하지도 이동 가능하지도 않습니다.

목차

매개변수

sp - 적응할 객체 (일반적으로 스마트 포인터)
args... - 캡처하기 위한 리셋에 사용되는 인수들

반환값

(없음)

예외

구현 정의 예외를 던질 수 있습니다.

참고 사항

생성 후, Pointer 또는 void * 변환 함수 중 어느 하나의 반환값이 가리키는 객체는 nullptr 와 같습니다.

args... 내의 모든 인수는 객체 타입인 경우 생성된 out_ptr_t 안으로 이동되고, 참조 타입인 경우 생성된 out_ptr_t 안으로 있는 그대로 전달됩니다.

out_ptr_t 의 생성자는 예외를 던질 수 있습니다. 예를 들어, sp std::shared_ptr 인 경우, 새로운 제어 블록에 대한 할당이 소멸자보다 생성자 내에서 수행될 수 있습니다.

예제