@@ -114,6 +114,16 @@ concept valid_when_all_sender = ::beman::execution::dependent_sender<Sender> ||
114114 ::std::tuple,
115115 ::beman::execution::detail::type_list>> == 1u ;
116116
117+ inline constexpr auto make_when_all_env = [](const ::beman::execution::inplace_stop_source& stop_src,
118+ const auto & env) noexcept {
119+ return ::beman::execution::detail::join_env (
120+ ::beman::execution::detail::make_env (::beman::execution::get_stop_token, stop_src.get_token()), env);
121+ };
122+
123+ template <typename Env>
124+ using when_all_env =
125+ decltype (make_when_all_env(::std::declval<::beman::execution::inplace_stop_source>(), ::std::declval<Env>()));
126+
117127struct when_all_t {
118128 template <::beman::execution::sender... Sender>
119129 requires (0u != sizeof ...(Sender)) && (... && beman::execution::detail::valid_when_all_sender<Sender>) &&
@@ -164,15 +174,6 @@ struct when_all_t {
164174 }
165175
166176 struct impls_for : ::beman::execution::detail::default_impls {
167- static constexpr auto make_when_all_env = [](const ::beman::execution::inplace_stop_source& stop_src,
168- const auto & env) noexcept {
169- return ::beman::execution::detail::join_env (
170- ::beman::execution::detail::make_env (::beman::execution::get_stop_token, stop_src.get_token()), env);
171- };
172- template <typename Env>
173- using when_all_env =
174- decltype (make_when_all_env(std::declval<::beman::execution::inplace_stop_source>(), std::declval<Env>()));
175-
176177 struct get_attrs_impl {
177178 auto operator ()(auto &&, auto &&... sender) const {
178179 using common_t =
0 commit comments