【发布时间】:2018-01-26 15:27:47
【问题描述】:
在 c++17(可能是 C++2a)中有什么比经典的 C++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 expression、structured-bindings?有什么提示吗?我可以接受为什么我不能在这里使用这些提到的 C++17 功能的答案 - 但我更喜欢“解决方案”。
【问题讨论】:
-
顺便说一句,std::ignore 分配的目的是什么?是记录意图吗?
-
@MassimilianoJanes 或多或少是的
标签: c++ variadic-templates c++17 structured-bindings fold-expression