【发布时间】:2020-06-13 20:27:07
【问题描述】:
给定一个
struct A{}; struct B{}; struct C{};
std::tuple<A,B,C> tabc;
如何从中删除第二个元素B 以获取tuple<A,C>,例如
std::tuple<A,C> tac = drop<B>(tabc);
还是一样的
std::tuple<A,C> tac = drop<1>(tabc);
我假设这会产生一个带有元素副本的新类型。
【问题讨论】:
-
使用
std::get将原始元组中的每个“幸存者”提取到新的元组中。而已;这里没有技巧,只是直接的方法。 -
auto tac = std::make_tuple(std::get<0>(tabc), std::get<2>(tabc));