std::experimental::ranges::make_tagged_pair
From cppreference.com
                    
                                        
                    < cpp | experimental | ranges
                    
                                                            
                    |   Defined in header  <experimental/ranges/utility>
  | 
||
|   template< TagSpecifier Tag1, TagSpecifier Tag2, class T1, class T2> constexpr ranges::tagged</*see below*/, Tag1, Tag2> make_tagged_pair(T1&& x, T2&& y);  | 
(ranges TS) | |
Convenience function for creating a tagged pair, deducing the element types from the arguments (the tag specifiers must be explicitly specified).
The see below portion of the return type is decltype(std::make_pair(std::forward<T1>(x), std::forward<T2>(y))).
Return value
R(std::forward<T1>(x), std::forward<T2>(y)), where R is the return type.
See also
|    specifies that a type represents a tag specifier and its element type   (concept)  | |
|    augument a tuple-like type with named accessors   (class template)  | |
|    alias template for a tagged std::pair   (alias template)  | |
|    alias template for a tagged std::tuple  (alias template)  | |
   convenience function for creating a tagged_tuple  (function template)  | |
|    tag specifiers for use with ranges::tagged  (class)  |