std::move_only_function::operator=
cppreference.net에서
move_only_function& operator=( move_only_function&& other );
|
(1) | (C++23부터) |
move_only_function& operator=( const move_only_function& ) = delete;
|
(2) | (C++23부터) |
move_only_function& operator=( std::nullptr_t ) noexcept;
|
(3) | (C++23부터) |
template< class F >
move_only_function& operator=( F&& f );
|
(4) | (C++23부터) |
새 타겟을 std::move_only_function에 할당하거나 그 타겟을 파괴합니다.
1)
other의 타겟을 *this(으)로 이동시키거나, *this이 비어 있으면 other을(를) 통해 auto(std::move(other)).swap(*this)의 타겟을 파괴합니다. other은(는) 이동 할당 후 지정되지 않은 값을 가지는 유효한 상태가 됩니다.3) 현재 타겟이 존재하면 파괴합니다.
*this은(는) 호출 후 비어 있습니다.4)
*this의 타겟을 호출 가능한 대상 f(으)로 설정하거나, f이 널 함수 포인터, 널 멤버 함수 포인터, 또는 빈 std::move_only_function인 경우 현재 타겟을 파괴합니다. 이는 move_only_function(std::forward<F>(f)).swap(*this);을(를) 실행하는 것과 같습니다. 이 오버로드는 move_only_function의 생성자가 F에서 오버로드 해결에 참여하는 경우에만 오버로드 해결에 참여합니다. 선택된 생성자 호출이 잘못된 형식이거나 정의되지 않은 동작을 가지는 경우 프로그램은 잘못된 형식이거나 정의되지 않은 동작을 가집니다.매개변수
| other | - |
다른
std::move_only_function
객체로 대상 이동
|
| f | - | 새로운 대상을 초기화하기 위한 호출 가능 객체 |
반환값
* this
참고 사항
move 할당 연산자에
noexcept
를 요구하지 않는 것은 의도적인 것으로, 향후 allocator-aware
move_only_function
을 위한 여지를 남기기 위함입니다.
move_only_function
는 해당 인수로부터 생성될 수 있는 경우
std::
in_place_type
<
Fn
>
로부터 할당될 수 있습니다.
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |
참고 항목
|
새로운 대상을 할당함
(
std::function<R(Args...)>
의 public 멤버 함수)
|