22#include <boost/asio/spawn.hpp>
59 { v.requestStop() } -> std::same_as<void>;
67 { v.cancel() } -> std::same_as<void>;
75 { v.wait() } -> std::same_as<void>;
83 { v.abort() } -> std::same_as<void>;
133 { v.isStopRequested() } -> std::same_as<bool>;
183template <
typename T,
typename... Args>
185 { std::invoke(fn, std::declval<Args>()...) };
196 []<
typename Rep,
typename Period>(
197 std::type_identity<std::chrono::duration<Rep, Period>>
198 ) {}(std::type_identity<std::decay_t<T>>());
207 std::type_identity<std::optional<Type>>
208 ) {}(std::type_identity<std::decay_t<T>>());
220template <
typename T,
typename Erased>
221concept NotSameAs = not std::is_same_v<std::decay_t<T>, Erased>;
226template <
typename T,
typename Erased>
228 requires std::is_rvalue_reference_v<
decltype(t)>;
Checks that decayed T s not of the same type as Erased.
Definition Concepts.hpp:221
Check that T is an r-value and is not the same type as Erased.
Definition Concepts.hpp:227
Specifies the interface for an operation that can be aborted.
Definition Concepts.hpp:82
Specifies the interface for an operation that can be awaited.
Definition Concepts.hpp:74
Specifies the interface for an operation that can be cancelled.
Definition Concepts.hpp:118
Specifies the interface for an entity that can be cancelled.
Definition Concepts.hpp:66
Concept that identifies types derived from ExecutionContextTag.
Definition Concepts.hpp:52
Specifies the interface for an operation that can force-invoked.
Definition Concepts.hpp:104
Specifies the interface for a handler that can be invoked with the specified args.
Definition Concepts.hpp:184
Specifies the interface for a handler that can be stopped.
Definition Concepts.hpp:176
Specifies the interface for an operation.
Definition Concepts.hpp:96
Specifies the interface for an operation.
Definition Concepts.hpp:90
Specifies that the type must be some std::duration wrapped in an optional.
Definition Concepts.hpp:215
Specifies the interface for an outcome (promise).
Definition Concepts.hpp:124
Specifies the interface for a simple stop token.
Definition Concepts.hpp:148
Specifies that the type must be some std::duration.
Definition Concepts.hpp:192
Specifies that the type must be some std::optional.
Definition Concepts.hpp:205
Specifies the interface for a provider of stop sources.
Definition Concepts.hpp:162
Specifies the interface for a stop source.
Definition Concepts.hpp:156
Specifies the interface for a stop token.
Definition Concepts.hpp:132
Specifies the interface for an operation that can be stopped.
Definition Concepts.hpp:112
Specifies the interface for an outcome (promise) that can be stopped.
Definition Concepts.hpp:170
Specifies the interface for an entity that can be stopped.
Definition Concepts.hpp:58
Specifies the interface for a stop token that internally uses a boost::asio::yield_context.
Definition Concepts.hpp:140
This namespace implements an async framework built on top of execution contexts.
Definition AnyExecutionContext.hpp:36
Tag type for identifying execution context types.
Definition Concepts.hpp:39