std::inout_ptr_t<Smart,Pointer,Args...>:: inout_ptr_t
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
inout_ptr_t::inout_ptr_t
|
||||
| Non-member functions | ||||
|
explicit
inout_ptr_t
(
Smart
&
sp, Args...
args
)
;
|
(1) | (C++23 이후) |
|
inout_ptr_t
(
const
inout_ptr_t
&
)
=
delete
;
|
(2) | (C++23 이후) |
inout_ptr_t
를 생성합니다.
sp
를
Smart
&
멤버에 바인딩된 것처럼 적응시키고,
args...
내의 모든 인수
t
를
std::
forward
<
T
>
(
t
)
로
Args...
내의
T
타입 해당 멤버를 초기화하는 것처럼 캡처합니다.
그런 다음 저장된
Pointer
를
Smart
가 포인터 타입인 경우
sp
로 초기화하고, 그렇지 않으면
sp.
get
(
)
로 초기화합니다.
Smart
가 포인터 타입이 아닌 경우
sp.
release
(
)
가 호출될 수 있으며, 이 경우 소멸자 내에서 다시 호출되지 않습니다.
inout_ptr_t
는 복사 가능하지도 이동 가능하지도 않습니다.
목차 |
매개변수
| sp | - | 적응할 객체 (일반적으로 스마트 포인터) |
| args... | - | 캡처할 재설정에 사용되는 인수들 |
반환값
(없음)
예외
구현 정의 예외를 던질 수 있습니다.
참고 사항
만약
Smart
가 포인터 타입이 아니고 생성자에서
sp.
release
(
)
가 호출되지 않았다면, 소멸자에서
sp
를 재설정하기 전에 호출될 수 있습니다.
args...
내의 모든 인수는 객체 타입인 경우 생성된
inout_ptr_t
로 이동되고, 참조 타입인 경우 생성된
inout_ptr_t
로 그대로 전달됩니다.
inout_ptr_t
의 생성자는 예외를 던질 수 있습니다. 예를 들어,
sp
가 컨트롤 블록을 가진 intrusive pointer인 경우, 새로운 컨트롤 블록에 대한 할당이 소멸자보다는 생성자 내에서 수행될 수 있습니다.
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |