@@ -165,32 +165,24 @@ namespace hpx::execution::experimental {
165165
166166 // BulkTwoWayExecutor interface
167167 // Integral shape overload - passes integral directly to bulk
168- // clang-format off
169- template <typename F, typename S, typename ... Ts,
170- HPX_CONCEPT_REQUIRES_ (
171- std::is_integral_v<S>
172- )>
173- // clang-format on
168+ template <typename F, typename S, typename ... Ts>
174169 friend decltype (auto ) tag_invoke(
175170 hpx::parallel::execution::bulk_async_execute_t ,
176171 explicit_scheduler_executor const & exec, F&& f, S const & shape,
177172 Ts&&... ts)
173+ requires(std::is_integral_v<S>)
178174 {
179175 return bulk (schedule (exec.sched_ ), shape,
180176 hpx::bind_back (HPX_FORWARD (F, f), HPX_FORWARD (Ts, ts)...));
181177 }
182178
183179 // Range shape overload
184- // clang-format off
185- template <typename F, typename S, typename ... Ts,
186- HPX_CONCEPT_REQUIRES_ (
187- !std::is_integral_v<S>
188- )>
189- // clang-format on
180+ template <typename F, typename S, typename ... Ts>
190181 friend decltype (auto ) tag_invoke(
191182 hpx::parallel::execution::bulk_async_execute_t ,
192183 explicit_scheduler_executor const & exec, F&& f, S const & shape,
193184 Ts&&... ts)
185+ requires(!std::is_integral_v<S>)
194186 {
195187 using shape_element =
196188 typename hpx::traits::range_traits<S>::value_type;
@@ -247,49 +239,37 @@ namespace hpx::execution::experimental {
247239 }
248240
249241 // Integral shape overload - passes integral directly
250- // clang-format off
251- template <typename F, typename S, typename ... Ts,
252- HPX_CONCEPT_REQUIRES_ (
253- std::is_integral_v<S>
254- )>
255- // clang-format on
242+ template <typename F, typename S, typename ... Ts>
256243 friend decltype (auto ) tag_invoke(
257244 hpx::parallel::execution::bulk_sync_execute_t ,
258245 explicit_scheduler_executor const & exec, F&& f, S const & shape,
259246 Ts&&... ts)
247+ requires(std::is_integral_v<S>)
260248 {
261249 hpx::this_thread::experimental::sync_wait (
262250 hpx::parallel::execution::bulk_async_execute (
263251 exec, HPX_FORWARD (F, f), shape, HPX_FORWARD (Ts, ts)...));
264252 }
265253
266254 // Range shape overload
267- // clang-format off
268- template <typename F, typename S, typename ... Ts,
269- HPX_CONCEPT_REQUIRES_ (
270- !std::is_integral_v<S>
271- )>
272- // clang-format on
255+ template <typename F, typename S, typename ... Ts>
273256 friend decltype (auto ) tag_invoke(
274257 hpx::parallel::execution::bulk_sync_execute_t ,
275258 explicit_scheduler_executor const & exec, F&& f, S const & shape,
276259 Ts&&... ts)
260+ requires(!std::is_integral_v<S>)
277261 {
278262 hpx::this_thread::experimental::sync_wait (
279263 hpx::parallel::execution::bulk_async_execute (
280264 exec, HPX_FORWARD (F, f), shape, HPX_FORWARD (Ts, ts)...));
281265 }
282266
283267 // Integral shape overload - passes integral directly to bulk
284- // clang-format off
285- template <typename F, typename S, typename Future, typename ... Ts,
286- HPX_CONCEPT_REQUIRES_ (
287- std::is_integral_v<S>
288- )>
289- // clang-format on
268+ template <typename F, typename S, typename Future, typename ... Ts>
290269 friend auto tag_invoke (hpx::parallel::execution::bulk_then_execute_t ,
291270 explicit_scheduler_executor const & exec, F&& f, S const & shape,
292271 Future&& predecessor, Ts&&... ts)
272+ requires(std::is_integral_v<S>)
293273 {
294274 auto pre_req =
295275 when_all (keep_future (HPX_FORWARD (Future, predecessor)));
@@ -300,15 +280,11 @@ namespace hpx::execution::experimental {
300280 }
301281
302282 // Range shape overload
303- // clang-format off
304- template <typename F, typename S, typename Future, typename ... Ts,
305- HPX_CONCEPT_REQUIRES_ (
306- !std::is_integral_v<S>
307- )>
308- // clang-format on
283+ template <typename F, typename S, typename Future, typename ... Ts>
309284 friend auto tag_invoke (hpx::parallel::execution::bulk_then_execute_t ,
310285 explicit_scheduler_executor const & exec, F&& f, S const & shape,
311286 Future&& predecessor, Ts&&... ts)
287+ requires(!std::is_integral_v<S>)
312288 {
313289 using result_type =
314290 parallel::execution::detail::then_bulk_function_result_t <F, S,
0 commit comments