Skip to content

Commit aab07dd

Browse files
authored
simplify the implementation of stdexec::just (#1716)
1 parent 80e3657 commit aab07dd

File tree

1 file changed

+3
-10
lines changed

1 file changed

+3
-10
lines changed

include/stdexec/__detail/__just.hpp

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,15 @@ namespace stdexec {
4848

4949
static constexpr auto start =
5050
[]<class _State, class _Receiver>(_State& __state, _Receiver& __rcvr) noexcept -> void {
51-
__state.apply(
52-
[&]<class... _Ts>(_Ts&... __ts) noexcept {
53-
__tag_t()(static_cast<_Receiver&&>(__rcvr), static_cast<_Ts&&>(__ts)...);
54-
},
55-
__state);
51+
__state.apply(__tag_t(), static_cast<_State&&>(__state), static_cast<_Receiver&&>(__rcvr));
5652
};
5753

5854
static constexpr auto submit =
5955
[]<class _Sender, class _Receiver>(_Sender&& __sndr, _Receiver __rcvr) noexcept -> void {
6056
static_assert(sender_expr_for<_Sender, _JustTag>);
6157
auto&& __state = get_state(static_cast<_Sender&&>(__sndr), __rcvr);
6258
__state.apply(
63-
[&]<class... _Ts>(_Ts&&... __ts) noexcept {
64-
__tag_t()(static_cast<_Receiver&&>(__rcvr), static_cast<_Ts&&>(__ts)...);
65-
},
66-
static_cast<decltype(__state)>(__state));
59+
__tag_t(), static_cast<decltype(__state)>(__state), static_cast<_Receiver&&>(__rcvr));
6760
};
6861
};
6962

@@ -72,7 +65,7 @@ namespace stdexec {
7265

7366
template <__movable_value... _Ts>
7467
STDEXEC_ATTRIBUTE(host, device)
75-
auto operator()(_Ts&&... __ts) const noexcept((__nothrow_decay_copyable<_Ts> && ...)) {
68+
auto operator()(_Ts&&... __ts) const noexcept(__nothrow_decay_copyable<_Ts...>) {
7669
return __make_sexpr<just_t>(__tuple{static_cast<_Ts&&>(__ts)...});
7770
}
7871
};

0 commit comments

Comments
 (0)