3#include <boost/asio/spawn.hpp>
40 { v.requestStop() } -> std::same_as<void>;
48 { v.cancel() } -> std::same_as<void>;
56 { v.wait() } -> std::same_as<void>;
64 { v.abort() } -> std::same_as<void>;
114 { v.isStopRequested() } -> std::same_as<bool>;
164template <
typename T,
typename... Args>
166 { std::invoke(fn, std::declval<Args>()...) };
177 []<
typename Rep,
typename Period>(
178 std::type_identity<std::chrono::duration<Rep, Period>>
179 ) {}(std::type_identity<std::decay_t<T>>());
188 std::type_identity<std::optional<Type>>
189 ) {}(std::type_identity<std::decay_t<T>>());
201template <
typename T,
typename Erased>
202concept NotSameAs = not std::is_same_v<std::decay_t<T>, Erased>;
207template <
typename T,
typename Erased>
209 requires std::is_rvalue_reference_v<
decltype(t)>;
Checks that decayed T s not of the same type as Erased.
Definition Concepts.hpp:202
Check that T is an r-value and is not the same type as Erased.
Definition Concepts.hpp:208
Specifies the interface for an operation that can be aborted.
Definition Concepts.hpp:63
Specifies the interface for an operation that can be awaited.
Definition Concepts.hpp:55
Specifies the interface for an operation that can be cancelled.
Definition Concepts.hpp:99
Specifies the interface for an entity that can be cancelled.
Definition Concepts.hpp:47
Concept that identifies types derived from ExecutionContextTag.
Definition Concepts.hpp:33
Specifies the interface for an operation that can force-invoked.
Definition Concepts.hpp:85
Specifies the interface for a handler that can be invoked with the specified args.
Definition Concepts.hpp:165
Specifies the interface for a handler that can be stopped.
Definition Concepts.hpp:157
Specifies the interface for an operation.
Definition Concepts.hpp:77
Specifies the interface for an operation.
Definition Concepts.hpp:71
Specifies that the type must be some std::duration wrapped in an optional.
Definition Concepts.hpp:196
Specifies the interface for an outcome (promise).
Definition Concepts.hpp:105
Specifies the interface for a simple stop token.
Definition Concepts.hpp:129
Specifies that the type must be some std::duration.
Definition Concepts.hpp:173
Specifies that the type must be some std::optional.
Definition Concepts.hpp:186
Specifies the interface for a provider of stop sources.
Definition Concepts.hpp:143
Specifies the interface for a stop source.
Definition Concepts.hpp:137
Specifies the interface for a stop token.
Definition Concepts.hpp:113
Specifies the interface for an operation that can be stopped.
Definition Concepts.hpp:93
Specifies the interface for an outcome (promise) that can be stopped.
Definition Concepts.hpp:151
Specifies the interface for an entity that can be stopped.
Definition Concepts.hpp:39
Specifies the interface for a stop token that internally uses a boost::asio::yield_context.
Definition Concepts.hpp:121
This namespace implements an async framework built on top of execution contexts.
Definition AnyExecutionContext.hpp:17
Tag type for identifying execution context types.
Definition Concepts.hpp:20