Учитывая вариативный шаблон, я хотел бы определить объект, который будет кортежем вектора каждого типа в вариативном шаблоне.
Что-то вроде:
template <typename... Ts>
class C {
std::tuple<std::vector<T1>, std::vector<T2>,...,std::vector<Tn>> vectors;
};
Это не обязательно должен быть один член данных, я имею в виду, что если это возможно сделать, используя больше вспомогательных типов или объектов, это не будет проблемой.
Пробовал сочетание std::make_index_sequence с std::tuple, но не смог разобраться.





template <typename... Ts>
class C {
std::tuple<std::vector<Ts>...> vectors;
};
Это расширяет шаблон (std::vector<Ts>) для каждого типа в упаковке (в результате чего вы получите желаемый std::tuple<std::vector<T1>, std::vector<T2>,...,std::vector<Tn>>)
Здесь вам не нужно использовать класс, вы можете использовать простой шаблон псевдонима типа:
template<typename... Ts>
using VectorTuple = std::tuple<std::vector<Ts>...>;