table of contents
        
      
      
    | std::experimental::ranges::tagged(3) | C++ Standard Libary | std::experimental::ranges::tagged(3) | 
NAME¶
std::experimental::ranges::tagged - std::experimental::ranges::tagged
Synopsis¶
 Defined in header <experimental/ranges/utility>
  
   template< class Base, TagSpecifier... Tags >
  
   requires sizeof...(Tags) <= std::tuple_size<Base>::value (ranges
  TS)
  
   struct tagged;
  
   The class template tagged augments a tuple-like class type Base, which it
    publicly
  
   derives from, with a set of named accessors specified by the tag specifiers
    Tags....
  
   The tags are applied in order: the i-th tag specifier in Tags... correspond
    to the
  
   i-th element of the tuple.
  
   The tag specifiers in Tags... shall be unique. Otherwise, the behavior is
    undefined.
  
   It is not possible to delete an instance of tagged through a pointer to any
    base
  
   other than Base.
Member functions¶
 constructor construct a tagged object
  
   (public member function)
  
   operator= assigns a tagged object
  
   (public member function)
  
   swap swaps the contents of two tagged objects
  
   (public member function)
  
   Named element accessors
  
   For the N-th tag specifier in Tags... whose corresponding element name is
    name,
  
   tagged provides accessors named name as follows:
  
   constexpr decltype(auto) name() & { return std::get<N>(*this); }
  
   constexpr decltype(auto) name() const & { return
    std::get<N>(*this); }
  
   constexpr decltype(auto) name() && { return
    std::get<N>(std::move(*this)); }
Non-member functions¶
 ranges::swap(ranges::tagged) specializes swap for tagged objects
  
   (function)
  
   Tuple-like access
  
   obtains the size of a tagged
  
   std::tuple_size<std::experimental::ranges::tagged> (class template
  
   specialization)
  
   obtains the types of the
  
   std::tuple_element<std::experimental::ranges::tagged> elements of a
    tagged
  
   (class template
  
   specialization)
See also¶
 TagSpecifier specifies that a type is a tag specifier
  
   (concept)
  
   tagged_pair alias template for a tagged std::pair
  
   (alias template)
  
   make_tagged_pair convenience function for creating a tagged_pair
  
   (function template)
  
   tagged_tuple alias template for a tagged std::tuple
  
   (alias template)
  
   make_tagged_tuple convenience function for creating a tagged_tuple
  
   (function template)
  
   in
  
   in1
  
   in2
  
   out
  
   out1 tag specifiers for use with ranges::tagged
  
   out2 (class)
  
   fun
  
   min
  
   max
  
   begin
  
   end
| 2022.07.31 | http://cppreference.com |