@@ -33,6 +33,8 @@ struct sender_data {
3333 Data& data;
3434 Children children;
3535};
36+ template <typename Tag, typename Data, typename Children>
37+ sender_data (Tag&&, Data&, Children&&) -> sender_data<Tag, Data, Children>;
3638
3739template <typename Sender>
3840auto get_sender_data (Sender&& sender) {
@@ -49,33 +51,24 @@ auto get_sender_data(Sender&& sender) {
4951 sender.size ();
5052 })
5153 return [&sender]<::std::size_t ... I>(::std::index_sequence<I...>) {
52- return ::beman::execution26::detail::sender_data<decltype (sender.template get <0 >()),
53- decltype (sender.template get <1 >()),
54- decltype (::std::tie (sender.template get <2 + I>()...))>{
54+ return ::beman::execution26::detail::sender_data{
5555 sender.template get <0 >(), sender.template get <1 >(), ::std::tie (sender.template get <2 + I>()...)};
5656 }(::std::make_index_sequence<::std::decay_t <decltype (sender)>::size () - 2u >{});
5757 else if constexpr (requires { sender_type{at, at, at, at, at, at}; }) {
5858 auto && [tag, data, c0, c1, c2, c3] = sender;
59- return ::beman::execution26::detail::
60- sender_data<decltype (tag), decltype (data), decltype (::std::tie (c0, c1, c2, c3))>{
61- tag, data, ::std::tie (c0, c1, c2, c3)};
59+ return ::beman::execution26::detail::sender_data{tag, data, ::std::tie (c0, c1, c2, c3)};
6260 } else if constexpr (requires { sender_type{at, at, at, at, at}; }) {
6361 auto && [tag, data, c0, c1, c2] = sender;
64- return ::beman::execution26::detail::
65- sender_data<decltype (tag), decltype (data), decltype (::std::tie (c0, c1, c2))>{
66- tag, data, ::std::tie (c0, c1, c2)};
62+ return ::beman::execution26::detail::sender_data{tag, data, ::std::tie (c0, c1, c2)};
6763 } else if constexpr (requires { sender_type{at, at, at, at}; }) {
6864 auto && [tag, data, c0, c1] = sender;
69- return ::beman::execution26::detail::sender_data<decltype (tag), decltype (data), decltype (::std::tie (c0, c1))>{
70- tag, data, ::std::tie (c0, c1)};
65+ return ::beman::execution26::detail::sender_data{tag, data, ::std::tie (c0, c1)};
7166 } else if constexpr (requires { sender_type{at, at, at}; }) {
7267 auto && [tag, data, c0] = sender;
73- return ::beman::execution26::detail::sender_data<decltype (tag), decltype (data), decltype (::std::tie (c0))>{
74- tag, data, ::std::tie (c0)};
68+ return ::beman::execution26::detail::sender_data{tag, data, ::std::tie (c0)};
7569 } else if constexpr (requires { sender_type{at, at}; }) {
7670 auto && [tag, data] = sender;
77- return ::beman::execution26::detail::sender_data<decltype (tag), decltype (data), ::std::tuple<>>{
78- tag, data, ::std::tuple<>()};
71+ return ::beman::execution26::detail::sender_data{tag, data, ::std::tuple<>()};
7972 } else {
8073 return ::beman::execution26::detail::sender_meta<void , void , void >{};
8174 }
0 commit comments