std::experimental::unique_resource<R, D>:: operator=
|
unique_resource
&
operator
=
(
unique_resource
&&
other
)
noexcept ( /*see below*/ ) ; |
(라이브러리 펀더멘털 TS v3) | |
이동 할당 연산자. 관리되는 자원과 삭제자를 other 의 것으로 대체합니다.
공식적으로,
RS
를 저장된 리소스 핸들의 타입으로 정의합니다:
- 먼저, 현재 소유한 리소스가 있는 경우 reset ( ) 를 호출하여 해당 리소스를 해제합니다.
-
그런 다음 저장된 리소스 핸들과 삭제자를
other
의 것으로 할당합니다.
std::move는 std:: is_nothrow_move_assignable_v < RS > 또는 std:: is_nothrow_move_assignable_v < D > 가 각각 true 인 경우 저장된 리소스 핸들 또는 삭제자에 적용됩니다. 저장된 리소스 핸들의 할당은 std:: is_nothrow_move_assignable_v < D > 가 false 이고 std:: is_nothrow_move_assignable_v < RS > 가 true 인 경우를 제외하고 먼저 실행됩니다. - 마지막으로, * this 가 리소스를 소유하도록 설정하는데, 이는 할당 전에 other 가 해당 리소스를 소유했던 경우에만 해당하며, other 는 리소스를 소유하지 않도록 설정됩니다.
만약
std::
is_nothrow_move_assignable_v
<
RS
>
가
true
라면,
RS
는
MoveAssignable
요구 사항을 충족해야 합니다; 그렇지 않으면
RS
는
CopyAssignable
요구 사항을 충족해야 합니다. 만약
std::
is_nothrow_move_assignable_v
<
D
>
가
true
라면,
D
는
MoveAssignable
요구 사항을 충족해야 합니다; 그렇지 않으면
D
는
CopyAssignable
요구 사항을 충족해야 합니다. 위 요구 사항을 충족하지 못할 경우 미정의 동작이 발생합니다.
목차 |
매개변수
| other | - | 소유권이 이전될 리소스 래퍼 |
반환값
* this
예외
복사 할당 연산에서 발생하는 모든 예외.
참고 사항
멤버의 복사본이 예외를 던지면, 이 메커니즘은 other 를 그대로 유지하고 * this 를 해제된 상태로 둡니다.
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |
참고 항목
|
관리되는 리소스를 폐기하거나 교체합니다
(public member function) |
|
unique_ptr
을 할당합니다
(
std::unique_ptr<T,Deleter>
의 public member function)
|