37 template(
class PS)
concept Cardinality,
38 has_cardinality_v<PS>);
66 template <
class... TN>
81 template <
class... TN>
96 template <
class... TN>
111 template <
class... TN>
130 template <
class... TN>
149 template <
class... TN>
163 is_executor_v<PS>&& is_sender_v<PS>&& is_single_v<PS>);
166 template <
class... TN>
177 template(
class PS)
concept Constrained,
178 is_constrained_v<PS>&& is_sender_v<PS>);
181 template <
class... TN>
192 template(
class PS)
concept Time,
193 is_time_v<PS>&& is_constrained_v<PS>&& is_sender_v<PS>);
196 template <
class... TN>
210 template(
class PS)
concept AlwaysBlocking,
211 is_always_blocking_v<PS>&& is_sender_v<PS>);
214 template <
class... TN>
228 template(
class PS)
concept NeverBlocking,
229 is_never_blocking_v<PS>&& is_sender_v<PS>);
232 template <
class... TN>
246 template(
class PS)
concept MaybeBlocking,
247 is_maybe_blocking_v<PS>&& is_sender_v<PS>);
250 template <
class... TN>
264 template(
class PS)
concept FifoSequence,
265 is_fifo_sequence_v<PS>&& is_sender_v<PS>);
268 template <
class... TN>
283 template(
class PS)
concept ConcurrentSequence,
284 is_concurrent_sequence_v<PS>&& is_sender_v<PS>);
287 template(
class R,
class... PropertyN)(
concept Receiver)(R, PropertyN...),
291 SemiMovable<R> && property_query_v<R, PropertyN...> &&
292 is_receiver_v<R> && !is_sender_v<R>);
295 template(
class R,
class... VN)(
concept ReceiveValue)(R, VN...),
303 template(
class R,
class E = std::exception_ptr)(
concept ReceiveError)(R,
E),
308 template(
class D,
class... PropertyN)(
concept Sender)(
D, PropertyN...),
312 SemiMovable<D> && Cardinality<D> && property_query_v<D, PropertyN...> &&
313 is_sender_v<D> && !is_receiver_v<D>);
316 template(
class D,
class S,
class... PropertyN)(
317 concept SenderTo)(
D, S, PropertyN...),
319 Receiver<S> && property_query_v<D, PropertyN...>);
325 decltype(
executor(std::declval<D&>())));
331 template(
class S,
class... PropertyN)(
332 concept FlowReceiver)(S, PropertyN...),
333 Receiver<S>&& property_query_v<S, PropertyN...>&& Flow<S>);
336 template(
class R,
class... VN)(
concept FlowReceiveValue)(R, VN...),
337 Flow<R>&& ReceiveValue<R, VN...>);
340 template(
class R,
class E = std::exception_ptr)(
342 Flow<R>&& ReceiveError<R, E>);
345 template(
class R,
class Up)(
concept FlowUpTo)(R, Up),
349 template(
class S,
class... PropertyN)(
concept FlowSender)(S, PropertyN...),
350 Sender<S>&& property_query_v<S, PropertyN...>&& Flow<S>);
353 template(
class D,
class S,
class... PropertyN)(
354 concept FlowSenderTo)(
D, S, PropertyN...),
355 FlowSender<D>&& property_query_v<D, PropertyN...>&& FlowReceiver<S>);
367 template(
class D,
class... PropertyN)(
368 concept ConstrainedSender)(
D, PropertyN...),
372 Sender<D> && property_query_v<D, PropertyN...> && Constrained<D>);
375 template(
class D,
class S,
class... PropertyN)(
376 concept ConstrainedSenderTo)(
D, S, PropertyN...),
378 ConstrainedSender<D> && property_query_v<D, PropertyN...> &&
383 ConstrainedSender<D>,
385 decltype(
top(std::declval<D&>())));
388 template(
class D,
class... PropertyN)(
concept TimeSender)(
D, PropertyN...),
392 Regular<decltype(
now(d) + std::chrono::seconds(1))>>) &&
393 ConstrainedSender<D, PropertyN...> && Time<D>);
396 template(
class D,
class S,
class... PropertyN)(
397 concept TimeSenderTo)(
D, S, PropertyN...),
398 ConstrainedSenderTo<D, S, PropertyN...>&& TimeSender<D>);
404 decltype(
now(std::declval<D&>())));
PUSHMI_INLINE_VAR constexpr bool is_never_blocking_v
constexpr std::enable_if_t< B, int > requires_
PUSHMI_INLINE_VAR constexpr bool is_flow_v
PUSHMI_INLINE_VAR constexpr bool is_executor_v
PUSHMI_INLINE_VAR constexpr bool is_concurrent_sequence_v
PUSHMI_INLINE_VAR constexpr bool is_time_v
PUSHMI_INLINE_VAR constexpr __adl::set_error_fn set_error
PUSHMI_INLINE_VAR constexpr bool is_always_blocking_v
—— Concurrent Priority Queue Implementation ——
PUSHMI_INLINE_VAR constexpr __adl::get_executor_fn executor
PUSHMI_PP_CONSTRAINED_USING(Sender< D >, executor_t=, decltype(executor(std::declval< D & >())))
PUSHMI_INLINE_VAR constexpr bool is_single_v
PUSHMI_CONCEPT_DEF(template(class PS) concept Cardinality, has_cardinality_v< PS >)
PUSHMI_INLINE_VAR constexpr bool is_sender_v
PUSHMI_INLINE_VAR constexpr bool is_maybe_blocking_v
#define PUSHMI_INLINE_VAR
PUSHMI_INLINE_VAR constexpr __adl::set_starting_fn set_starting
requires requires(detail::apply_impl(std::declval< F >(), std::declval< Tuple >(), detail::tupidxs< Tuple >{}))) const expr decltype(auto) apply(F &&f
PUSHMI_INLINE_VAR constexpr __adl::get_top_fn now
PUSHMI_INLINE_VAR constexpr __adl::get_top_fn top
PUSHMI_INLINE_VAR constexpr bool is_many_v
PUSHMI_INLINE_VAR constexpr __adl::set_value_fn set_value
PUSHMI_INLINE_VAR constexpr __adl::do_submit_fn submit
PUSHMI_INLINE_VAR constexpr bool is_fifo_sequence_v
PUSHMI_INLINE_VAR constexpr bool is_receiver_v
PUSHMI_INLINE_VAR constexpr bool is_constrained_v
PUSHMI_INLINE_VAR constexpr bool has_cardinality_v
PUSHMI_INLINE_VAR constexpr __adl::set_done_fn set_done