std::experimental::ranges::tagged::tagged(3)

NAME
std::experimental::ranges::tagged::tagged - std::experimental::ranges::tagged::tagged

Synopsis
   using Base::Base; (1)
   tagged() = default; (2)
   tagged( tagged&& that ) = default; (3)
   tagged( const tagged& that ) = default; (4)
   tagged( Base&& that ) noexcept(std::is_nothrow_move_constructible<Base>::value) (5)
       requires MoveConstructible<Base>;
   tagged( const Base& that )
   noexcept(std::is_nothrow_copy_constructible<Base>::value) (6)
       requires CopyConstructible<Base>;
   template< class Other >
       requires Constructible<Base, Other> (7)
   constexpr tagged( ranges::tagged<Other, Tags...> && that )
       noexcept(std::is_nothrow_constructible<Base, Other>::value);
   template< class Other >
       requires Constructible<Base, const Other&> (8)
   constexpr tagged( const ranges::tagged<Other, Tags...> &that );
   Constructs a tagged object.
   1) tagged<Base, Tags...> inherits the constructors of Base.
   2-4) tagged has defaulted default, copy, and move constructors that invoke the
   corresponding constructor of Base.
   5) Converting move constructor from Base. Initializes the Base subobject with
   std::move(that).
   6) Converting copy constructor from Base. Initializes the Base subobject with that.
   7) Converting move constructor from a different tagged specialization with matching
   tags. Initializes the Base subobject with static_cast<Other&&>(that).
   8) Converting copy constructor from a different tagged specialization with matching
   tags. Initializes the Base subobject with static_cast<const Other&>(that).