我有下面的代码来迭代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);
}
现在,我想for_each
用 openmp 执行这个循环,就像我可以在for
. 有什么诀窍可以使这成为可能吗?
注意:您可以修改上述代码或使用您自己的任何其他版本for_each
。