Namespaces
Variants

std::experimental::unique_resource<R, D>:: operator=

From cppreference.net
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)