BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static Result call(State const& state,It0 const& it0,F f) { return call_1( f(state,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it0)), fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it0), f); }
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static Result call_2(State2 const& state2,It2 const& it2,F& f) { return call_3( f(state2,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it2)), fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it2), f); }
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static Result call_1(State1 const& state1,It1 const& it1,F& f) { return call_2( f(state1,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it1)), fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it1), f); }
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static Result call_3(State3 const& state3,It3 const& it3,F& f) { return BOOST_PP_CAT(unrolled_,BOOST_FUSION_FOLD_NAME)< Result , N-4 >::call( f(state3,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it3)), fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it3), f); }
static Result call(State const& state,It0 const& it0,F f) { typedef typename result_of::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION< It0 const >::type It1; It1 it1 = fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it0); typedef typename result_of::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION< It1 >::type It2; It2 it2 = fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it1); typedef typename result_of::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION< It2 >::type It3; It3 it3 = fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it2); typedef typename BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)<State,It0,F>::type State1; State1 const state1=f(state,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it0)); typedef typename BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)<State1,It1,F>::type State2; State2 const state2=f(state1,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it1)); typedef typename BOOST_PP_CAT(BOOST_FUSION_FOLD_NAME, _lvalue_state)<State2,It2,F>::type State3; State3 const state3=f(state2,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it2)); return BOOST_PP_CAT(unrolled_,BOOST_FUSION_FOLD_NAME)< Result , N-4 >::call( f(state3,BOOST_FUSION_FOLD_IMPL_INVOKE_IT_TRANSFORM(it3)), fusion::BOOST_FUSION_FOLD_IMPL_NEXT_IT_FUNCTION(it3), f); }