std::experimental::ranges::tagged<Base,Tags...>::operator=
来自cppreference.com
                    
                                        
                    < cpp | experimental | ranges | utility/tagged
                    
                                                            
                    |   tagged &operator=(tagged&& that) = default;  | 
(1) | |
|   tagged &operator=(const tagged& that) = default;  | 
(2) | |
|   template <class Other>     requires ranges::Assignable<Base&, Other>  | 
(3) | |
|   template <class Other>     requires ranges::Assignable<Base&, const Other&>  | 
(4) | |
|   template <class U>     requires ranges::Assignable<Base&, U> && !ranges::Same<std::decay_t<U>, tagged>  | 
(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); 。返回值
*this 。