У меня есть класс, который, как ожидается, будет принимать std::tuple
определенных типов (допускается произвольное количество) в качестве аргумента шаблона. Я хочу объявить кортеж векторов типов. Например, у меня есть
template <typename T>
class MyClass {/*...*/}
Я создаю его экземпляр
MyClass<std::tuple<int, bool>> my_class;
, и я стремлюсь создать поле, подобное этому
std::tuple<std::vector<int>, std::vector<bool>> my_tuple;
Я знаю, что если бы я имел определение класса
template <typename... T>
class MyClass2 {/*...*/}
Я мог бы создать его экземпляр, передав типы данных без кортежа
MyClass<int, bool> my_class2;
, а затем просто создать поле
std::tuple<std::vector<int>, std::vector<bool>> my_tuple2;
, используя
std::tuple<std::vector<T>...> my_tuple2;
Поэтому я подумал, что мне следует каким-то образом распаковать типы данных из кортежа. Возможно ли это?