18class scheduler_interface;
19class queue_capabilities_interface;
21template<
typename SyncPolicy,
typename BoundPolicy,
typename OverflowPolicy>
25 struct sync_policy_tag;
26 struct bound_policy_tag;
27 struct overflow_policy_tag;
39template<
typename T,
typename =
void>
44 : std::is_same<typename T::policy_tag, policies::sync_policy_tag> {};
49template<
typename T,
typename =
void>
54 : std::is_same<typename T::policy_tag, policies::bound_policy_tag> {};
59template<
typename T,
typename =
void>
64 : std::is_same<typename T::policy_tag, policies::overflow_policy_tag> {};
105template<
typename SyncPolicy,
typename BoundPolicy,
typename OverflowPolicy>
112template<
typename T,
typename =
void>
122template<
typename T,
typename =
void>
132template<
typename T,
typename =
void>
167constexpr bool is_scheduler_v = std::is_base_of_v<scheduler_interface, std::remove_cv_t<T>>;
174 std::is_base_of_v<queue_capabilities_interface, std::remove_cv_t<T>>;
194template<
typename T,
typename =
void>
201 detail::has_sync_policy_type<T>::value &&
202 detail::has_bound_policy_type<T>::value &&
203 detail::has_overflow_policy_type<T>::value>>
221template<
typename T,
typename =
void>
227 static constexpr bool value =
239template<
typename T,
typename =
void>
245 static constexpr bool value =
255template<
typename T,
typename =
void>
261 static constexpr bool value =
Policy-based queue template.
Core threading foundation of the thread system library.
constexpr bool is_policy_queue_v
Check if type is a policy_queue instantiation.
constexpr bool is_lockfree_queue_v
constexpr bool is_overflow_policy_v
Check if type is an overflow policy.
constexpr bool is_bounded_queue_v
constexpr bool is_bound_policy_v
Check if type is a bound policy.
constexpr bool is_scheduler_v
Check if type is a scheduler_interface.
constexpr bool is_queue_capabilities_v
Check if type is a queue_capabilities_interface.
constexpr bool is_sync_policy_v
Check if type is a sync policy.
constexpr bool has_blocking_overflow_v
Detect if type has bound_policy_tag.
Detect if type has bound_policy_type member.
Detect if type has overflow_policy_tag.
Detect if type has overflow_policy_type member.
Detect if type has sync_policy_tag.
Detect if type has sync_policy_type member.
Primary template: not a policy_queue.
Compile-time detection of blocking overflow policy.
Compile-time detection of bounded queue.
Compile-time detection of lock-free capability.
typename T::bound_policy_type bound_policy_type
typename T::overflow_policy_type overflow_policy_type
typename T::sync_policy_type sync_policy_type
Extract policy types from a policy_queue.
static constexpr bool is_policy_queue