Version: 1.0
Public Member Functions | List of all members
blocking_queue< T > Class Template Reference

#include <queue.h>

Public Member Functions

 blocking_queue (unsigned int size)
 
 blocking_queue (const blocking_queue &)=delete
 
 blocking_queue (blocking_queue &&)=delete
 
blocking_queueoperator= (const blocking_queue &)=delete
 
blocking_queueoperator= (blocking_queue &&)=delete
 
 ~blocking_queue () noexcept
 
template<typename Q = T>
std::enable_if< std::is_copy_constructible< Q >::value &&std::is_nothrow_copy_constructible< Q >::value, void >::type push (const T &item) noexcept
 
template<typename Q = T>
std::enable_if< std::is_copy_constructible< Q >::value &&!std::is_nothrow_copy_constructible< Q >::value, void >::type push (const T &item)
 
template<typename Q = T>
std::enable_if< std::is_move_constructible< Q >::value &&std::is_nothrow_move_constructible< Q >::value, void >::type push (T &&item) noexcept
 
template<typename Q = T>
std::enable_if< std::is_move_constructible< Q >::value &&!std::is_nothrow_move_constructible< Q >::value, void >::type push (T &&item)
 
template<typename Q = T>
std::enable_if< !std::is_move_assignable< Q >::value &&std::is_nothrow_copy_assignable< Q >::value, void >::type pop (T &item) noexcept
 
template<typename Q = T>
std::enable_if< !std::is_move_assignable< Q >::value &&!std::is_nothrow_copy_assignable< Q >::value, void >::type pop (T &item)
 
template<typename Q = T>
std::enable_if< std::is_move_assignable< Q >::value &&std::is_nothrow_move_assignable< Q >::value, void >::type pop (T &item) noexcept
 
template<typename Q = T>
std::enable_if< std::is_move_assignable< Q >::value &&!std::is_nothrow_move_assignable< Q >::value, void >::type pop (T &item)
 
pop ()
 
bool empty () const noexcept
 
bool size () const noexcept
 
unsigned int max_size () const noexcept
 

Detailed Description

template<typename T>
class blocking_queue< T >

Definition at line 10 of file queue.h.

Constructor & Destructor Documentation

◆ blocking_queue() [1/3]

template<typename T >
blocking_queue< T >::blocking_queue ( unsigned int  size)
inline

Definition at line 13 of file queue.h.

◆ blocking_queue() [2/3]

template<typename T >
blocking_queue< T >::blocking_queue ( const blocking_queue< T > &  )
delete

◆ blocking_queue() [3/3]

template<typename T >
blocking_queue< T >::blocking_queue ( blocking_queue< T > &&  )
delete

◆ ~blocking_queue()

template<typename T >
blocking_queue< T >::~blocking_queue ( )
inlinenoexcept

Definition at line 23 of file queue.h.

Member Function Documentation

◆ empty()

template<typename T >
bool blocking_queue< T >::empty ( ) const
inlinenoexcept

Definition at line 204 of file queue.h.

◆ max_size()

template<typename T >
unsigned int blocking_queue< T >::max_size ( ) const
inlinenoexcept

Definition at line 216 of file queue.h.

◆ operator=() [1/2]

template<typename T >
blocking_queue& blocking_queue< T >::operator= ( blocking_queue< T > &&  )
delete

◆ operator=() [2/2]

template<typename T >
blocking_queue& blocking_queue< T >::operator= ( const blocking_queue< T > &  )
delete

◆ pop() [1/5]

template<typename T >
T blocking_queue< T >::pop ( )
inline

Definition at line 197 of file queue.h.

◆ pop() [2/5]

template<typename T >
template<typename Q = T>
std::enable_if< !std::is_move_assignable<Q>::value && !std::is_nothrow_copy_assignable<Q>::value, void>::type blocking_queue< T >::pop ( T &  item)
inline

Definition at line 134 of file queue.h.

◆ pop() [3/5]

template<typename T >
template<typename Q = T>
std::enable_if< std::is_move_assignable<Q>::value && !std::is_nothrow_move_assignable<Q>::value, void>::type blocking_queue< T >::pop ( T &  item)
inline

Definition at line 176 of file queue.h.

◆ pop() [4/5]

template<typename T >
template<typename Q = T>
std::enable_if< !std::is_move_assignable<Q>::value && std::is_nothrow_copy_assignable<Q>::value, void>::type blocking_queue< T >::pop ( T &  item)
inlinenoexcept

Definition at line 117 of file queue.h.

◆ pop() [5/5]

template<typename T >
template<typename Q = T>
std::enable_if< std::is_move_assignable<Q>::value && std::is_nothrow_move_assignable<Q>::value, void>::type blocking_queue< T >::pop ( T &  item)
inlinenoexcept

Definition at line 159 of file queue.h.

◆ push() [1/4]

template<typename T >
template<typename Q = T>
std::enable_if< std::is_copy_constructible<Q>::value && !std::is_nothrow_copy_constructible<Q>::value, void>::type blocking_queue< T >::push ( const T &  item)
inline

Definition at line 53 of file queue.h.

◆ push() [2/4]

template<typename T >
template<typename Q = T>
std::enable_if< std::is_copy_constructible<Q>::value && std::is_nothrow_copy_constructible<Q>::value, void>::type blocking_queue< T >::push ( const T &  item)
inlinenoexcept

Definition at line 37 of file queue.h.

◆ push() [3/4]

template<typename T >
template<typename Q = T>
std::enable_if< std::is_move_constructible<Q>::value && !std::is_nothrow_move_constructible<Q>::value, void>::type blocking_queue< T >::push ( T &&  item)
inline

Definition at line 93 of file queue.h.

◆ push() [4/4]

template<typename T >
template<typename Q = T>
std::enable_if< std::is_move_constructible<Q>::value && std::is_nothrow_move_constructible<Q>::value, void>::type blocking_queue< T >::push ( T &&  item)
inlinenoexcept

Definition at line 77 of file queue.h.

◆ size()

template<typename T >
bool blocking_queue< T >::size ( ) const
inlinenoexcept

Definition at line 210 of file queue.h.


The documentation for this class was generated from the following file: