Есть ли что-нибудь лучше в С++ 17 (возможно, С++ 2a), чем классический способ С++ 14 для распаковки вариативного кортежа с помощью std::index_sequence
?
Что-нибудь лучше этого:
template <typename ...I>
class MultiIterator
{
public:
MultiIterator(I const& ...i)
: i(i...)
{}
MultiIterator& operator ++()
{
increment(std::index_sequence_for<I...>{});
return *this;
}
private:
template <std::size_t ...C>
void increment(std::index_sequence<C...>)
{
std::ignore = std::make_tuple(++std::get<C>(i)...);
}
std::tuple<I...> i;
};
Например, выражение fold, структурированные привязки? Любой намек? Я могу принять ответ, почему я не могу использовать здесь упомянутые функции С++ 17, но я предпочитаю «solution.