Skip to content

Commit de00157

Browse files
Refactor complete lambda to use product_type and std::is_invocable_v
1 parent 605834c commit de00157

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

include/beman/execution/detail/bulk.hpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,13 @@ struct bulk_t {
4848
template <>
4949
struct impls_for<bulk_t> : ::beman::execution::detail::default_impls {
5050

51-
static constexpr auto complete = []<class Index, class State, class Rcvr, class Tag, class... Args>(
52-
Index, State& state, Rcvr& rcvr, Tag, Args&&... args) noexcept -> void
53-
requires(not::std::same_as<Tag, set_value_t> ||
54-
requires(State& s, Args&&... a) {
55-
(s.template get<1>())(s.template get<0>(), ::std::forward<Args>(a)...);
56-
})
51+
static constexpr auto complete = []<class Index, class Shape, class Fun, class Rcvr, class Tag, class... Args>(
52+
Index,
53+
::beman::execution::detail::product_type<Shape, Fun>& state,
54+
Rcvr& rcvr,
55+
Tag,
56+
Args&&... args) noexcept -> void
57+
requires(not::std::same_as<Tag, set_value_t> || std::is_invocable_v<Fun, Shape, Args...>)
5758
{
5859
if constexpr (std::same_as<Tag, set_value_t>) {
5960
auto& [shape, f] = state;

0 commit comments

Comments
 (0)