8 General utilities library [utilities]

8.5 Tagged tuple-like types [taggedtup]

8.5.5 Alias template tagged_tuple [tagged.tuple]

8.5.5.1 Tagged tuple creation functions [tagged.tuple.creation]

template <TagSpecifier... Tags, class... Types> requires sizeof...(Tags) == sizeof...(Types) constexpr see below make_tagged_tuple(Types&&... t);

Let T be the type of make_tuple(std::forward<Types>(t)...). Then the return type is tagged<T, Tags...>.

Returns: tagged<T, Tags...>(std::forward<Types>(t)...).

Example:

int i; float j;
make_tagged_tuple<tag::in1, tag::in2, tag::out>(1, ref(i), cref(j))

creates a tagged tuple of type

tagged_tuple<tag::in1(int), tag::in2(int&), tag::out(const float&)>

 — end example ]