std::execution::scheduler

Header: <execution>

The concept scheduler is modeled by types that are schedulers, that is, lightweight handlers to execution resources such as thread pools that work with the C++ execution library.

# Declarations

template< class Sch >
concept scheduler =
std::derived_from<
typename std::remove_cvref_t<Sch>::scheduler_concept,
scheduler_t> &&
/*queryable*/<Sch> &&
requires(Sch&& sch)
{
{
std::execution::schedule(std::forward<Sch>(sch))
} -> std::execution::sender;
{
auto(
std::execution::get_completion_scheduler<
std::execution::set_value_t>(
std::execution::get_env(
std::execution::schedule(
std::forward<Sch>(sch)))))
} -> std::same_as<std::remove_cvref_t<Sch>>;
} &&
std::equality_comparable<std::remove_cvref_t<Sch>> &&
std::copy_constructible<std::remove_cvref_t<Sch>>;
};

(since C++26)

Helper tag type
struct scheduler_t {};

(since C++26)

# See also