@@ -125,15 +125,14 @@ namespace exec {
125125
126126 template <class _Notification >
127127 using __tag_of_t =
128- stdexec::__mapply<stdexec::__q<stdexec::__mfront>, STDEXEC_REMOVE_REFERENCE ( _Notification) >;
128+ stdexec::__mapply<stdexec::__q<stdexec::__mfront>, __decay_t < _Notification> >;
129129
130130 template <class _Tag , class ... _Args>
131- notification_t (_Tag __tag, _Args&&... __args) noexcept (noexcept (
132- __notification_.template emplace<__decayed_tuple<_Tag, STDEXEC_REMOVE_REFERENCE (_Args)...>>(
133- __tag,
134- static_cast <_Args&&>(__args)...))) {
135- __notification_.template emplace <__decayed_tuple<_Tag, STDEXEC_REMOVE_REFERENCE (_Args)...>>(
136- __tag, static_cast <_Args&&>(__args)...);
131+ notification_t (_Tag __tag, _Args&&... __args)
132+ noexcept (noexcept (__notification_.template emplace<__decayed_tuple<_Tag, _Args...>>(
133+ __decayed_tuple<_Tag, _Args...>{__tag, static_cast <_Args&&>(__args)...}))) {
134+ __notification_.template emplace <__decayed_tuple<_Tag, _Args...>>(
135+ __decayed_tuple<_Tag, _Args...>{__tag, static_cast <_Args&&>(__args)...});
137136 }
138137
139138 template <class _Fn >
@@ -190,10 +189,11 @@ namespace exec {
190189
191190 friend auto
192191 operator ==(const notification_t & __lhs, const notification_t & __rhs) noexcept -> bool {
192+ using __self_t = notification_t ;
193193 return std::visit (
194194 []<class _Lhs , class _Rhs >(const _Lhs& __lhs, const _Rhs& __rhs) noexcept -> bool {
195- using __lhs_tag_t = notification_t ::__tag_of_t <_Lhs>;
196- using __rhs_tag_t = notification_t ::__tag_of_t <_Rhs>;
195+ using __lhs_tag_t = __self_t ::__tag_of_t <_Lhs>;
196+ using __rhs_tag_t = __self_t ::__tag_of_t <_Rhs>;
197197 if constexpr (
198198 !std::same_as<__lhs_tag_t , __rhs_tag_t >
199199 || stdexec::__v<stdexec::__mapply<stdexec::__msize, _Lhs>>
0 commit comments