В C++26 появился pack indexing. Теперь тип по индексу можно получить напрямую из набора параметров:
template<std::size_t I, typename... Ts>
using nth_t = Ts...[I];
using Second = nth_t<1, int, double, std::string>;
// Second = double
Индексация начинается с нуля.
Раньше для этого использовали
std::tuple_element_t, вспомогательные шаблоны или рекурсию:
template<std::size_t I, typename... Ts>
using old_nth_t = std::tuple_element_t<I, std::tuple<Ts...>>;
Новый синтаксис короче и понятнее:
Ts...[I]
Пригодится в шаблонных библиотеках, метапрограммировании, traits и compile-time API.
