This wording is relative to N4971.
Edit 22.4.6 [tuple.apply] as indicated:
template<class T, tuple-like Tuple>constexpr T make_from_tuple(Tuple&& t);-3- Let I be the pack 0, 1, ..., (tuple_size_v<remove_reference_t<Tuple>> - 1).-4- Constraints: is_constructible_v<T, decltype(get<I>(declval<Tuple>()))...> is true.-5- Mandates: If tuple_size_v<remove_reference_t<Tuple>> is 1, then reference_constructs_from_temporary_v<T, decltype(get<0>(declval<Tuple>()))> is false.
-6- Effects: Given the exposition-only function template:namespace std { template<class T, tuple-like Tuple, size_t... I>requires is_constructible_v<T, decltype(get<I>(declval<Tuple>()))...>constexpr T make-from-tuple-impl(Tuple&& t, index_sequence<I...>) { // exposition only return T(get<I>(std::forward<Tuple>(t))...); } }Equivalent to:return make-from-tuple-impl<T>( std::forward<Tuple>(t), make_index_sequence<tuple_size_v<remove_reference_t<Tuple>>>{});
[Note 1:The type of T must be supplied as an explicit template parameter, as it cannot be deduced from the argument list.— end note]