30template <
typename Derived>
40 template <
typename Predicate>
44 return self().query().filter(std::forward<Predicate>(
pred));
50 return self().query().count();
56 return self().query().empty();
59 template <
typename Fn>
63 self().query().for_each(std::forward<Fn>(
fn));
66 template <
typename Predicate,
typename Fn>
70 self().query().filter(std::forward<Predicate>(
pred)).for_each(std::forward<Fn>(
fn));
73 template <
typename Fn>
75 map(
Fn&&
fn)
const -> std::vector<std::invoke_result_t<Fn, registered_thread_info_backend const&>>
77 return self().query().map(std::forward<Fn>(
fn));
80 template <
typename Predicate>
84 return self().query().find_if(std::forward<Predicate>(
pred));
87 template <
typename Predicate>
91 return self().query().any(std::forward<Predicate>(
pred));
94 template <
typename Predicate>
98 return self().query().all(std::forward<Predicate>(
pred));
101 template <
typename Predicate>
105 return self().query().none(std::forward<Predicate>(
pred));
111 return self().query().take(
n);
117 return self().query().skip(
n);
CRTP mixin that provides functional-style query facade methods.
auto count() const -> size_t
auto empty() const -> bool
auto take(size_t n) const
auto none(Predicate &&pred) const -> bool
void for_each(Fn &&fn) const
auto any(Predicate &&pred) const -> bool
auto skip(size_t n) const
auto all(Predicate &&pred) const -> bool
void apply(Predicate &&pred, Fn &&fn) const
auto map(Fn &&fn) const -> std::vector< std::invoke_result_t< Fn, registered_thread_info_backend const & > >
auto find_if(Predicate &&pred) const -> std::optional< registered_thread_info_backend >
auto filter(Predicate &&pred) const
Aggregates multiple thread_registry_backend instances into a single queryable view.
Native thread metadata and lifecycle-safe control blocks.