46 s.value((VN&&) vn...);
52 s.starting((Up&&) up);
63 std::declval<SD&>().
submit(std::declval<Out>())
77 std::declval<SD&>().
submit(
78 std::declval<TP(&)(TP)>()(
top(std::declval<SD&>())),
103 s->value((VN&&) vn...);
109 s->starting((Up&&) up);
115 return sd->executor();
132 std::declval<SD&>()->
submit(
133 std::declval<TP(&)(TP)>()(
top(std::declval<SD&>())),
136 void submit(SD& sd, TP tp, Out out)
173 template <
class T,
class E>
175 p.set_exception(std::make_exception_ptr(
std::move(e)));
227 return top(sd.get());
233 std::declval<TP(&)(TP)>()(
top(std::declval<SD&>())),
236 void submit(std::reference_wrapper<SD> sd, TP tp, Out out)
249 set_error(std::declval<S&>(), std::current_exception())
262 set_error(std::declval<S&>(), std::declval<E>())
264 void operator()(S&&
s,
E e)
const 272 set_value(std::declval<S&>(), std::declval<VN&&>()...),
273 set_error(std::declval<S&>(), std::current_exception())
275 void operator()(S&&
s, VN&&... vn)
const 289 set_error(std::declval<S&>(), std::current_exception())
291 void operator()(S&&
s, Up&& up)
const 314 submit(std::declval<SD&>(), std::declval<Out>())
316 void operator()(SD&&
s, Out out)
const 323 submit(std::declval<SD&>(),
top(std::declval<SD&>()), std::declval<Out>())
325 void operator()(SD&&
s, Out out)
const 337 void operator()(SD&&
s, TP
tp, Out out)
const 346 top(std::declval<SD&>())
366 not Valid<T&, __properties_t>>> {
requires requires(executor(std::declval< SD & >()))) auto operator()(SD &&sd) const noexcept(noexcept(executor(sd)))
constexpr detail::Map< Move > move
requires TP Out out const noexcept(noexcept(submit(s, std::move(tp), std::move(out))))
requires Invocable< S & > void set_done(S &) noexcept
—— Concurrent Priority Queue Implementation ——
requires E e noexcept(noexcept(s.error(std::move(e))))
requires And< SemiMovable< VN >... > &&SemiMovable< E > auto error(E e)
requires requires(std::declval< S & >().done())) void set_done(S &s) noexcept(noexcept(s.done()))
PUSHMI_INLINE_VAR constexpr __adl::get_executor_fn executor
requires Out out const noexcept(noexcept(submit(s, top(s), std::move(out))))
requires Invocable< S & > void set_value(S &s) noexcept(noexcept(s()))
#define PUSHMI_INLINE_VAR
requires E e const noexcept(noexcept(set_error(s, std::move(e))))
PUSHMI_INLINE_VAR constexpr __adl::set_starting_fn set_starting
PUSHMI_INLINE_VAR constexpr __adl::get_top_fn now
PUSHMI_TEMPLATE(class E=std::exception_ptr, class Wrapped)(requires Sender< detail
PUSHMI_INLINE_VAR constexpr __adl::get_top_fn top
requires VN &&vn const noexcept(noexcept(set_value(s,(VN &&) vn...)))
requires Up &&up const noexcept(noexcept(set_starting(s,(Up &&) up)))
requires Out out const noexcept(noexcept(submit(s, std::move(out))))
uint64_t value(const typename LockFreeRingBuffer< T, Atom >::Cursor &rbcursor)
PUSHMI_INLINE_VAR constexpr __adl::do_submit_fn submit
requires Invocable< S & > void set_error(S &, E &&) noexcept
requires requires(set_done(std::declval< S & >()), set_error(std::declval< S & >(), std::current_exception()))) void operator()(S &&s) const noexcept(noexcept(set_done(s)))
requires requires(top(std::declval< SD & >()))) auto operator()(SD &&sd) const noexcept(noexcept(top(sd)))