unique_ptr_swap2
unique_ptr_swap2 (unique_ptr swap 비멤버)
<memory> 헤더에 정의되어 있어요. std::unique_ptr에 대한 std::swap 알고리즘 특수화예요. lhs와 rhs의 내용을 맞바꿔요. lhs.swap(rhs)를 호출해요. C++11부터 도입됐어요.
출처: cppreference
본문
template< class T, class D >
void swap( std::unique_ptr<T, D>& lhs, std::unique_ptr<T, D>& rhs ) noexcept;
(C++11부터)
std::unique_ptr에 대한 std::swap 알고리즘을 특수화해요. lhs와 rhs의 내용을 맞바꿔요. lhs.swap(rhs)를 호출해요.
이 오버로드는 std::is_swappable_v<D>가 true일 때만 오버로드 해석에 참여해요.
매개변수
lhs, rhs: 내용을 맞바꿀 스마트 포인터
std::unique_ptr<Foo> a = std::make_unique<Foo>(1);
std::unique_ptr<Foo> b = std::make_unique<Foo>(2);
std::swap(a, b); // a 는 2, b 는 1
삭제자 타입 D가 스왑 가능해야 해요. unique_ptr에 대한 swap 특수화는 포인터와 삭제자 상태를 함께 맞바꿔요.