Как насчет
using children = std::tuple<typename T::Child...>;
?
Я имею в виду ... единственный тип - T::Child
, поэтому для повторения типов необходимо поместить многоточие (...
) после типа, поэтому T::Child...
.
Но, учитывая универсальный тип T
, T::Child
может быть типом, а также членом или методом. Поэтому вам нужно typename
, прежде чем сообщить компилятору, что следующий T::Child
является типом, а не членом или другим.