Skip to content

Commit c09e8d7

Browse files
committed
mollify clang-16
1 parent feb2a34 commit c09e8d7

2 files changed

Lines changed: 11 additions & 8 deletions

File tree

examples/benchmark/fibonacci.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ auto serial_fib(long n) -> long
2929
return n < 2 ? n : serial_fib(n - 1) + serial_fib(n - 2);
3030
}
3131

32-
template <class... Ts>
32+
template <class... CompletionSigs>
3333
using any_sender_of =
34-
exec::any_receiver_ref<stdexec::completion_signatures<Ts...>>::template any_sender<>;
34+
exec::any_sender<exec::any_receiver<stdexec::completion_signatures<CompletionSigs...>>>;
3535

3636
using fib_sender = any_sender_of<stdexec::set_value_t(long)>;
3737

include/exec/any_sender_of.hpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
#include "env.hpp"
2323

24-
#include <cstddef>
2524
#include <utility>
2625

2726
STDEXEC_PRAGMA_PUSH()
@@ -602,10 +601,8 @@ namespace experimental::execution
602601
struct _any_receiver_ref
603602
: __pointer_receiver<typename _any::_ireceiver<Sigs, Queries>::_pointer_t>
604603
{
605-
// TODO: make sure that passing an any_receiver to this constructor does not cause
606-
// double indirections.
607-
template <__not_same_as<_any_receiver_ref> Receiver>
608-
requires receiver_of<Receiver, Sigs>
604+
template <__not_decays_to<_any_receiver_ref> Receiver>
605+
requires STDEXEC::receiver_of<Receiver, Sigs>
609606
constexpr _any_receiver_ref(Receiver &_rcvr) noexcept
610607
: _any_receiver_ref::__pointer_receiver(std::addressof(_rcvr))
611608
{}
@@ -724,11 +721,17 @@ namespace experimental::execution
724721
any_receiver_ref<STDEXEC::completion_signatures<Sigs...>, Queries...>
725722
: _any::_any_receiver_ref<STDEXEC::completion_signatures<Sigs...>, _any::_queries_t<Queries...>>
726723
{
724+
private:
727725
using _any_receiver_t =
728726
any_receiver<STDEXEC::completion_signatures<Sigs...>, _any::_queries_t<Queries...>>;
729727
using _base_t = _any::_any_receiver_ref<STDEXEC::completion_signatures<Sigs...>,
730728
_any::_queries_t<Queries...>>;
731-
using _base_t::_base_t;
729+
public:
730+
template <STDEXEC::__not_decays_to<any_receiver_ref> Receiver>
731+
requires STDEXEC::receiver_of<Receiver, STDEXEC::completion_signatures<Sigs...>>
732+
constexpr any_receiver_ref(Receiver &_rcvr) noexcept
733+
: _base_t{static_cast<Receiver &>(_rcvr)}
734+
{}
732735

733736
template <auto... SenderQueries>
734737
struct [[deprecated("use exec::any_sender<exec::any_receiver<Sigs, ReceiverQueries>, "

0 commit comments

Comments
 (0)