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>;
103 { v.isStopRequested() } -> std::same_as<bool>;
153template <
typename T,
typename... Args>
155 { std::invoke(fn, std::declval<Args>()...) };
165 []<
typename Rep,
typename Period>(
166 std::type_identity<std::chrono::duration<Rep, Period>>
167 ) {}(std::type_identity<std::decay_t<T>>());
176 std::type_identity<std::optional<Type>>
177 ) {}(std::type_identity<std::decay_t<T>>());
189template <
typename T,
typename Erased>
190concept NotSameAs = not std::is_same_v<std::decay_t<T>, Erased>;
195template <
typename T,
typename Erased>
197 requires std::is_rvalue_reference_v<
decltype(t)>;
Checks that decayed T s not of the same type as Erased.
Definition Concepts.hpp:190
Check that T is an r-value and is not the same type as Erased.
Definition Concepts.hpp:196
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:88
Specifies the interface for an entity that can be cancelled.
Definition Concepts.hpp:44
Specifies the interface for a handler that can be invoked with the specified args.
Definition Concepts.hpp:154
Specifies the interface for a handler that can be stopped.
Definition Concepts.hpp:146
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:184
Specifies the interface for an outcome (promise)
Definition Concepts.hpp:94
Specifies the interface for a simple stop token.
Definition Concepts.hpp:118
Specifies that the type must be some std::duration.
Definition Concepts.hpp:162
Specifies that the type must be some std::optional.
Definition Concepts.hpp:174
Specifies the interface for a provider of stop sources.
Definition Concepts.hpp:132
Specifies the interface for a stop source.
Definition Concepts.hpp:126
Specifies the interface for a stop token.
Definition Concepts.hpp:102
Specifies the interface for an operation that can be stopped.
Definition Concepts.hpp:82
Specifies the interface for an outcome (promise) that can be stopped.
Definition Concepts.hpp:140
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:110
This namespace implements an async framework built on top of execution contexts.
Definition AnyExecutionContext.hpp:36