|
template<typename Other > |
constexpr auto | operator= (tagged< Other, Tags... > &&that) noexcept(noexcept(std::declval< Base & >()=static_cast< Other && >(that))) -> tagged &requires can_convert< Other >::value |
|
template<typename Other > |
constexpr auto | operator= (tagged< Other, Tags... > const &that) noexcept(noexcept(std::declval< Base & >()=static_cast< Other const & >(that))) -> tagged &requires can_convert< Other >::value |
|
template<typename U > |
constexpr auto | operator= (U &&u) noexcept(noexcept(std::declval< Base & >()=static_cast< U && >(u))) -> tagged &requires(!defer::same_as< tagged, detail::decay_t< U >>) &&defer::satisfies< Base &, std::is_assignable, U > |
|
template<typename B = Base> |
constexpr auto | swap (tagged &that) noexcept(is_nothrow_swappable< B >::value) -> void requires is_swappable< B >::value |
|
template<typename Other > |
constexpr | tagged (tagged< Other, Tags... > &&that) noexcept(std::is_nothrow_constructible< Base, Other >::value) requires(can_convert< Other > |
|
template<typename Other > |
constexpr | tagged (tagged< Other, Tags... > const &that) noexcept(std::is_nothrow_constructible< Base, Other const & >::value) requires(can_convert< Other > |
|