// defined in header <experimental/ranges/utility>
namespace std { namespace experimental { namespace ranges { inline namespace v1 {
template <TagSpecifier Tag1, TagSpecifier Tag2, class T1, class T2>
constexpr see below make_tagged_pair(T1&& x, T2&& y);
}}}}
Let P be the type of make_pair(std::forward<T1>(x), std::forward<T2>(y)). Then the return type is tagged<P, Tag1, Tag2>.
Returns: {std::forward<T1>(x), std::forward<T2>(y)}.
[ Example: In place of:
return tagged_pair<tag::min(int), tag::max(double)>(5, 3.1415926); // explicit types
a C++ program may contain:
return make_tagged_pair<tag::min, tag::max>(5, 3.1415926); // types are deduced
— end example ]