【发布时间】:2013-09-29 05:23:56
【问题描述】:
例如,我有一个元组
tuple<int, float, char> t(0, 1.1, 'c');
还有一个模板函数
template<class T> void foo(T e);
我想用函数循环元组元素,如何实现,比如使用 boost::mpl::for_each 来实现以下?
template<class Tuple>
void loopFoo(Tuple t)
{
foo<std::tuple_element<0, Tuple>::type>(std::get<0>(t));
foo<std::tuple_element<1, Tuple>::type>(std::get<1>(t));
foo<std::tuple_element<2, Tuple>::type>(std::get<2>(t));
...
}
【问题讨论】:
-
@JohnZwinck:这个问题有点宽泛,这导致了相当复杂的答案(与下面的 nurettin 相比)。