std::tuple
을 반복 할 수 있도록 다음 코드를 제공합니다. 코드는 여기에서 here입니다.openmp로 C++ 11 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
에 OpenMP를 사용할 수 있습니다 같은 방법으로, OpenMP와 함께이 for_each
루프를 실행하고 싶습니다. 이것을 가능하게하는 속임수가 있습니까?
참고 : 위의 코드를 수정하거나 다른 버전의 for_each
을 사용할 수 있습니다.
'for_each' "루프"가 표시되지 않습니다. 나는 재귀를 보는데, 이것은 재귀가 아니다. –
@ NicolBolas 재귀는 추상적 인 의미에서 루프라고 할 수 있습니다. – Johannes