@@ -43,45 +43,45 @@ struct ForallParamPack
43
43
private:
44
44
// Init
45
45
template <typename EXEC_POL, camp::idx_t ... Seq, typename ... Args>
46
- static constexpr void params_init (EXEC_POL,
46
+ static constexpr void params_init (EXEC_POL const & pol ,
47
47
camp::idx_seq<Seq...>,
48
48
ForallParamPack& f_params,
49
49
Args&&... args)
50
50
{
51
- CAMP_EXPAND (param_init<EXEC_POL>( camp::get<Seq>(f_params.param_tup ),
52
- std::forward<Args>(args)...));
51
+ CAMP_EXPAND (param_init (pol, camp::get<Seq>(f_params.param_tup ),
52
+ std::forward<Args>(args)...));
53
53
}
54
54
55
55
// Combine
56
56
template <typename EXEC_POL, camp::idx_t ... Seq>
57
57
RAJA_HOST_DEVICE static constexpr void params_combine (
58
- EXEC_POL,
58
+ EXEC_POL const & pol ,
59
59
camp::idx_seq<Seq...>,
60
60
ForallParamPack& out,
61
61
const ForallParamPack& in)
62
62
{
63
- CAMP_EXPAND (param_combine<EXEC_POL>( camp::get<Seq>(out.param_tup ),
64
- camp::get<Seq>(in.param_tup )));
63
+ CAMP_EXPAND (param_combine (pol, camp::get<Seq>(out.param_tup ),
64
+ camp::get<Seq>(in.param_tup )));
65
65
}
66
66
67
67
template <typename EXEC_POL, camp::idx_t ... Seq>
68
68
RAJA_HOST_DEVICE static constexpr void params_combine (
69
- EXEC_POL,
69
+ EXEC_POL const & pol ,
70
70
camp::idx_seq<Seq...>,
71
71
ForallParamPack& f_params)
72
72
{
73
- CAMP_EXPAND (param_combine<EXEC_POL>( camp::get<Seq>(f_params.param_tup )));
73
+ CAMP_EXPAND (param_combine (pol, camp::get<Seq>(f_params.param_tup )));
74
74
}
75
75
76
76
// Resolve
77
77
template <typename EXEC_POL, camp::idx_t ... Seq, typename ... Args>
78
- static constexpr void params_resolve (EXEC_POL,
78
+ static constexpr void params_resolve (EXEC_POL const & pol ,
79
79
camp::idx_seq<Seq...>,
80
80
ForallParamPack& f_params,
81
81
Args&&... args)
82
82
{
83
- CAMP_EXPAND (param_resolve<EXEC_POL>( camp::get<Seq>(f_params.param_tup ),
84
- std::forward<Args>(args)...));
83
+ CAMP_EXPAND (param_resolve (pol, camp::get<Seq>(f_params.param_tup ),
84
+ std::forward<Args>(args)...));
85
85
}
86
86
87
87
// Used to construct the argument TYPES that will be invoked with the lambda.
@@ -155,32 +155,35 @@ struct ParamMultiplexer
155
155
typename ... Params,
156
156
typename ... Args,
157
157
typename FP = ForallParamPack<Params...>>
158
- static void constexpr params_init (ForallParamPack<Params...>& f_params,
159
- Args&&... args)
158
+ static void constexpr params_init (EXEC_POL const & pol,
159
+ ForallParamPack<Params...>& f_params,
160
+ Args&&... args)
160
161
{
161
- FP::params_init (EXEC_POL () , typename FP::params_seq (), f_params,
162
+ FP::params_init (pol , typename FP::params_seq (), f_params,
162
163
std::forward<Args>(args)...);
163
164
}
164
165
165
166
template <typename EXEC_POL,
166
167
typename ... Params,
167
168
typename ... Args,
168
169
typename FP = ForallParamPack<Params...>>
169
- static void constexpr params_combine (ForallParamPack<Params...>& f_params,
170
- Args&&... args)
170
+ static void constexpr params_combine (EXEC_POL const & pol,
171
+ ForallParamPack<Params...>& f_params,
172
+ Args&&... args)
171
173
{
172
- FP::params_combine (EXEC_POL () , typename FP::params_seq (), f_params,
174
+ FP::params_combine (pol , typename FP::params_seq (), f_params,
173
175
std::forward<Args>(args)...);
174
176
}
175
177
176
178
template <typename EXEC_POL,
177
179
typename ... Params,
178
180
typename ... Args,
179
181
typename FP = ForallParamPack<Params...>>
180
- static void constexpr params_resolve (ForallParamPack<Params...>& f_params,
181
- Args&&... args)
182
+ static void constexpr params_resolve (EXEC_POL const & pol,
183
+ ForallParamPack<Params...>& f_params,
184
+ Args&&... args)
182
185
{
183
- FP::params_resolve (EXEC_POL () , typename FP::params_seq (), f_params,
186
+ FP::params_resolve (pol , typename FP::params_seq (), f_params,
184
187
std::forward<Args>(args)...);
185
188
}
186
189
};
0 commit comments