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

Friends

template<typename B = Base>
meta::if_c< is_swappable< B >::value > swap (tagged &x, tagged &y) noexcept(is_nothrow_swappable< B >::value)
 

Public Member Functions

template<typename Other , typename = meta::if_<can_convert<Other>>>
taggedoperator= (tagged< Other, Tags... > &&that) noexcept(noexcept(std::declval< Base &>()=static_cast< Other &&>(that)))
 
template<typename Other , typename = meta::if_<can_convert<Other>>>
taggedoperator= (tagged< Other, Tags... > const &that) noexcept(noexcept(std::declval< Base &>()=static_cast< Other const &>(that)))
 
template<typename U , typename = meta::if_c<!std::is_same<tagged, detail::decay_t<U>>::value>, typename = decltype(std::declval<Base &>() = std::declval<U>())>
taggedoperator= (U &&u) noexcept(noexcept(std::declval< Base &>()=static_cast< U &&>(u)))
 
template<typename B = Base>
meta::if_c< is_swappable< B >::value > swap (tagged &that) noexcept(is_nothrow_swappable< B >::value)
 
constexpr tagged (Base &&that) noexcept(std::is_nothrow_move_constructible< Base >::value)
 
constexpr tagged (Base const &that) noexcept(std::is_nothrow_copy_constructible< Base >::value)
 
template<typename Other , typename = meta::if_<can_convert<Other>>>
constexpr tagged (tagged< Other, Tags... > &&that) noexcept(std::is_nothrow_constructible< Base, Other >::value)
 
template<typename Other , typename = meta::if_<can_convert<Other>>>
constexpr tagged (tagged< Other, Tags... > const &that) noexcept(std::is_nothrow_constructible< Base, Other const &>::value)
 

Constructor & Destructor Documentation

◆ tagged() [1/2]

template<typename Base, typename... Tags>
constexpr ranges::v3::tagged_detail::tagged< Base, Tags >::tagged ( Base &&  that)
noexcept
Precondition
MoveConstructible<Base>()

◆ tagged() [2/2]

template<typename Base, typename... Tags>
constexpr ranges::v3::tagged_detail::tagged< Base, Tags >::tagged ( Base const &  that)
noexcept
Precondition
CopyConstructible<Base>()