22#include <boost/asio/spawn.hpp>
37 { v.requestStop() } -> std::same_as<void>;
45 { v.cancel() } -> std::same_as<void>;
53 { v.wait() } -> std::same_as<void>;
61 { v.abort() } -> std::same_as<void>;
111 { v.isStopRequested() } -> std::same_as<bool>;
161template <
typename T,
typename... Args>
163 { std::invoke(fn, std::declval<Args>()...) };
173 []<
typename Rep,
typename Period>(
174 std::type_identity<std::chrono::duration<Rep, Period>>
175 ) {}(std::type_identity<std::decay_t<T>>());
184 std::type_identity<std::optional<Type>>
185 ) {}(std::type_identity<std::decay_t<T>>());
197template <
typename T,
typename Erased>
198concept NotSameAs = not std::is_same_v<std::decay_t<T>, Erased>;
203template <
typename T,
typename Erased>
205 requires std::is_rvalue_reference_v<
decltype(t)>;
Checks that decayed T s not of the same type as Erased.
Definition Concepts.hpp:198
Check that T is an r-value and is not the same type as Erased.
Definition Concepts.hpp:204
Specifies the interface for an operation that can be aborted.
Definition Concepts.hpp:60
Specifies the interface for an operation that can be awaited.
Definition Concepts.hpp:52
Specifies the interface for an operation that can be cancelled.
Definition Concepts.hpp:96
Specifies the interface for an entity that can be cancelled.
Definition Concepts.hpp:44
Specifies the interface for an operation that can force-invoked.
Definition Concepts.hpp:82
Specifies the interface for a handler that can be invoked with the specified args.
Definition Concepts.hpp:162
Specifies the interface for a handler that can be stopped.
Definition Concepts.hpp:154
Specifies the interface for an operation.
Definition Concepts.hpp:74
Specifies the interface for an operation.
Definition Concepts.hpp:68
Specifies that the type must be some std::duration wrapped in an optional.
Definition Concepts.hpp:192
Specifies the interface for an outcome (promise)
Definition Concepts.hpp:102
Specifies the interface for a simple stop token.
Definition Concepts.hpp:126
Specifies that the type must be some std::duration.
Definition Concepts.hpp:170
Specifies that the type must be some std::optional.
Definition Concepts.hpp:182
Specifies the interface for a provider of stop sources.
Definition Concepts.hpp:140
Specifies the interface for a stop source.
Definition Concepts.hpp:134
Specifies the interface for a stop token.
Definition Concepts.hpp:110
Specifies the interface for an operation that can be stopped.
Definition Concepts.hpp:90
Specifies the interface for an outcome (promise) that can be stopped.
Definition Concepts.hpp:148
Specifies the interface for an entity that can be stopped.
Definition Concepts.hpp:36
Specifies the interface for a stop token that internally uses a boost::asio::yield_context.
Definition Concepts.hpp:118
This namespace implements an async framework built on top of execution contexts.
Definition AnyExecutionContext.hpp:36