std:: inout_ptr
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
inout_ptr
|
|
헤더에 정의됨
<memory>
|
||
|
template
<
class
Pointer
=
void
,
class
Smart,
class
...
Args
>
auto inout_ptr ( Smart & s, Args && ... args ) ; |
(C++23부터) | |
추론된 템플릿 인자를 가진
inout_ptr_t
를 반환하며, 참조에 의한 재설정을 위한 인자들을 캡처합니다.
반환값(아래 참조)의 생성이 형성되지 않은 경우 프로그램은 형성되지 않습니다.
목차 |
매개변수
| s | - | 적응할 객체 (일반적으로 스마트 포인터) |
| args... | - | 캡처할 재설정 인자들 |
반환값
std::
inout_ptr_t
<
Smart, P, Args
&&
>
(
s,
std::
forward
<
Args
>
(
args
)
...
)
, 여기서
P
는
-
Pointer, 만약Pointer가 void 타입이 아닌 경우, 그렇지 않으면 - Smart :: pointer , 유효하며 타입을 나타내는 경우, 그렇지 않으면
- Smart :: element_type * , 만약 Smart :: element_type 가 유효하며 타입을 나타내는 경우, 그렇지 않으면
- std:: pointer_traits < Smart > :: element_type * .
참고 사항
사용자는 템플릿 매개변수
Pointer
에 대한 템플릿 인수를 지정하여
Pointer
*
를 취하는 외부 함수와 상호 운용할 수 있습니다.
리셋팅을 위한 모든 인수들이 참조로 캡처되므로, 반환된
inout_ptr_t
은 외부 함수 호출을 포함하는 전체 표현식의 끝에서 소멸되는 임시 객체여야 합니다. 이는 댕글링 참조를 방지하기 위함입니다.
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_out_ptr
|
202106L
|
(C++23) |
std::out_ptr
,
std::inout_ptr
|
202311L
|
(C++26) |
독립 실행 환경
std::out_ptr
및
std::inout_ptr
|
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
|
(C++23)
|
관련된 스마트 포인터와 리셋 인자를 가진
out_ptr_t
생성
(함수 템플릿) |
|
(C++14)
(C++20)
|
새로운 객체를 관리하는 unique pointer 생성
(함수 템플릿) |
|
새로운 객체를 관리하는 shared pointer 생성
(함수 템플릿) |