Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::tagged< Base, Tags > Class Template Reference
+ Inheritance diagram for ranges::tagged< Base, Tags >:

Friends

template<typename B = Base>
constexpr friend auto swap (tagged &x, tagged &y) noexcept(is_nothrow_swappable< B >::value) -> void requires is_swappable< B >::value
 

Public Member Functions

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 >