Namespaces
Variants

std::experimental::ranges::tagged<Base,Tags...>:: operator=

From cppreference.net
tagged & operator = ( tagged && that ) = default ;
(1)
tagged & operator = ( const tagged & that ) = default ;
(2)
template < class Other >

requires Assignable < Base & , Other >
constexpr tagged & operator = ( ranges:: tagged < Other, Tags... > && that )

noexcept ( std:: is_nothrow_assignable < Base & , Other > :: value ) ;
(3)
template < class Other >

requires Assignable < Base & , const Other & >

constexpr tagged & operator = ( const ranges:: tagged < Other, Tags... > & that ) ;
(4)
template < class U >

requires Assignable < Base & , U > && ! Same < std:: decay_t < U > , tagged >

constexpr tagged & operator = ( U && that ) noexcept ( std:: is_nothrow_assignable < Base & , U > :: value ) ;
(5)

that 의 내용을 * this 에 할당합니다.

1,2) tagged Base 의 해당 대입 연산자를 호출하는 기본 복사 및 이동 대입 연산자를 갖습니다.
3) 일치하는 태그를 가진 다른 tagged 특수화로부터 이동 할당 변환. 다음 코드와 동등함: static_cast < Base & > ( * this ) = static_cast < Other && > ( that ) ; .
4) 일치하는 태그를 가진 다른 tagged 특수화로부터의 복사 할당 변환. static_cast < Base & > ( * this ) = static_cast < const Other & > ( that ) ; 와 동등합니다.
5) that Base 서브객체에 할당합니다. static_cast < Base & > ( * this ) = std:: forward < U > ( that ) ; 와 동등합니다.

반환값

* this .