| @@ -93,7 +93,7 @@ template <std::size_t I = 0, typename Opr, typename... Tp> | |||||
| I<sizeof...(Tp), void>::type set_sub_execution_policy( | I<sizeof...(Tp), void>::type set_sub_execution_policy( | ||||
| const Opr* opr, std::tuple<Tp...>& t) { | const Opr* opr, std::tuple<Tp...>& t) { | ||||
| std::get<I>(t)->execution_policy() = opr->execution_policy().sub_policy[I]; | std::get<I>(t)->execution_policy() = opr->execution_policy().sub_policy[I]; | ||||
| set_sub_execution_policy<I + 1, Tp...>(opr, t); | |||||
| set_sub_execution_policy<I + 1, Opr, Tp...>(opr, t); | |||||
| } | } | ||||
| template <typename Opr, typename... SubOpr> | template <typename Opr, typename... SubOpr> | ||||
| @@ -103,7 +103,7 @@ void set_execution_policy(const Opr* opr, SubOpr... sub_oprs) { | |||||
| megdnn_assert(opr->execution_policy().sub_policy.size() == | megdnn_assert(opr->execution_policy().sub_policy.size() == | ||||
| sizeof...(sub_oprs)); | sizeof...(sub_oprs)); | ||||
| auto&& sub = std::make_tuple(sub_oprs...); | auto&& sub = std::make_tuple(sub_oprs...); | ||||
| set_sub_execution_policy<sizeof...(sub_oprs), Opr, SubOpr...>(opr, sub); | |||||
| set_sub_execution_policy<0, Opr, SubOpr...>(opr, sub); | |||||
| } | } | ||||
| } | } | ||||