我有以下代码,用于迭代std::tuple
。 该代码来自这里。
#include <tuple>
#include <utility>
template<std::size_t I = 0, typename FuncT, typename... Tp>
inline typename std::enable_if<I == sizeof...(Tp), void>::type
for_each(std::tuple<Tp...> &, FuncT) // Unused arguments are given no names.
{ }
template<std::size_t I = 0, typename FuncT, typename... Tp>
inline typename std::enable_if<I < sizeof...(Tp), void>::type
for_each(std::tuple<Tp...>& t, FuncT& f)
{
f(std::get<I>(t));
for_each<I + 1, FuncT, Tp...>(t, f);
}
现在,我想用openmp执行这个
for_each
循环,就像我可以在for
上使用openmp一样。有什么诀窍可以实现这一点吗?注:您可以修改上面的代码或使用自己的任何其他版本的
for_each
。
for_each
"循环",我看到的是递归,这两者不同。 - Nicol Bolas