Thread System 0.3.1
High-performance C++20 thread pool with work stealing and DAG scheduling
Loading...
Searching...
No Matches
queue_traits.h File Reference

Type traits for detecting queue synchronization policy tags. More...

#include <type_traits>
Include dependency graph for queue_traits.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kcenon::thread::detail::has_sync_policy_tag< T, typename >
 Detect if type has sync_policy_tag. More...
 
struct  kcenon::thread::detail::has_sync_policy_tag< T, std::void_t< typename T::policy_tag > >
 
struct  kcenon::thread::detail::has_bound_policy_tag< T, typename >
 Detect if type has bound_policy_tag. More...
 
struct  kcenon::thread::detail::has_bound_policy_tag< T, std::void_t< typename T::policy_tag > >
 
struct  kcenon::thread::detail::has_overflow_policy_tag< T, typename >
 Detect if type has overflow_policy_tag. More...
 
struct  kcenon::thread::detail::has_overflow_policy_tag< T, std::void_t< typename T::policy_tag > >
 
struct  kcenon::thread::detail::is_policy_queue_impl< T >
 Primary template: not a policy_queue. More...
 
struct  kcenon::thread::detail::is_policy_queue_impl< policy_queue< SyncPolicy, BoundPolicy, OverflowPolicy > >
 Specialization for policy_queue template. More...
 
struct  kcenon::thread::detail::has_sync_policy_type< T, typename >
 Detect if type has sync_policy_type member. More...
 
struct  kcenon::thread::detail::has_sync_policy_type< T, std::void_t< typename T::sync_policy_type > >
 
struct  kcenon::thread::detail::has_bound_policy_type< T, typename >
 Detect if type has bound_policy_type member. More...
 
struct  kcenon::thread::detail::has_bound_policy_type< T, std::void_t< typename T::bound_policy_type > >
 
struct  kcenon::thread::detail::has_overflow_policy_type< T, typename >
 Detect if type has overflow_policy_type member. More...
 
struct  kcenon::thread::detail::has_overflow_policy_type< T, std::void_t< typename T::overflow_policy_type > >
 
struct  kcenon::thread::policy_queue_traits< T, typename >
 Extract policy types from a policy_queue. More...
 
struct  kcenon::thread::policy_queue_traits< T, std::enable_if_t< detail::has_sync_policy_type< T >::value &&detail::has_bound_policy_type< T >::value &&detail::has_overflow_policy_type< T >::value > >
 
struct  kcenon::thread::is_lockfree_queue< T, typename >
 Compile-time detection of lock-free capability. More...
 
struct  kcenon::thread::is_lockfree_queue< T, std::enable_if_t< policy_queue_traits< T >::is_policy_queue > >
 
struct  kcenon::thread::is_bounded_queue< T, typename >
 Compile-time detection of bounded queue. More...
 
struct  kcenon::thread::is_bounded_queue< T, std::enable_if_t< policy_queue_traits< T >::is_policy_queue > >
 
struct  kcenon::thread::has_blocking_overflow< T, typename >
 Compile-time detection of blocking overflow policy. More...
 
struct  kcenon::thread::has_blocking_overflow< T, std::enable_if_t< policy_queue_traits< T >::is_policy_queue > >
 

Namespaces

namespace  kcenon
 
namespace  kcenon::thread
 Core threading foundation of the thread system library.
 
namespace  kcenon::thread::policies
 
namespace  kcenon::thread::detail
 

Variables

template<typename T >
constexpr bool kcenon::thread::is_sync_policy_v = detail::has_sync_policy_tag<T>::value
 Check if type is a sync policy.
 
template<typename T >
constexpr bool kcenon::thread::is_bound_policy_v = detail::has_bound_policy_tag<T>::value
 Check if type is a bound policy.
 
template<typename T >
constexpr bool kcenon::thread::is_overflow_policy_v = detail::has_overflow_policy_tag<T>::value
 Check if type is an overflow policy.
 
template<typename T >
constexpr bool kcenon::thread::is_policy_queue_v = detail::is_policy_queue_impl<std::remove_cv_t<T>>::value
 Check if type is a policy_queue instantiation.
 
template<typename T >
constexpr bool kcenon::thread::is_scheduler_v = std::is_base_of_v<scheduler_interface, std::remove_cv_t<T>>
 Check if type is a scheduler_interface.
 
template<typename T >
constexpr bool kcenon::thread::is_queue_capabilities_v
 Check if type is a queue_capabilities_interface.
 
template<typename T >
constexpr bool kcenon::thread::is_lockfree_queue_v = is_lockfree_queue<T>::value
 
template<typename T >
constexpr bool kcenon::thread::is_bounded_queue_v = is_bounded_queue<T>::value
 
template<typename T >
constexpr bool kcenon::thread::has_blocking_overflow_v = has_blocking_overflow<T>::value
 

Detailed Description

Type traits for detecting queue synchronization policy tags.

Definition in file queue_traits.h.