Как преобразовать типы из параметров вариационного шаблона в другой тип?
Например:
template <typename... T>
struct single
{
std::tuple<T...> m_single;
};
template <typename... T>
struct sequences
{
single<T...> get(size_t pos)
{
// I don't know how to convert here
return std::make_tuple(std::get<0>(m_sequences)[pos]... std::get<N>(m_sequences)[pos]);
}
template <size_t Idx>
std::vector<
typename std::tuple_element<Idx, std::tuple<T...>>::type
>
get_sequence()
{
return std::get<Idx>(m_sequences);
}
std::tuple<T...> m_sequences; // std::tuple<std::vector<T...>> I don't know how to conver here
};
Я хочу написать так:
sequences<int, double, double> seq;
single<int, double, double> sin = seq.get(10);
И имеют std::tuple<std::vector<int>, std::vector<double>, std::vector<double>>
в структурных последовательностях. И получить один от него.
std::vector<single<T...>>
- плохая идея для меня, потому что мне нужна полная последовательность, и ее легко скопировать.
Возможно ли это?
Большое спасибо. Извините за мой плохой английский.