|  | 
| using | adopt_lock_t = detail::adopt_lock_t | 
|  | 
| template<typename Span , unsigned NumBuffers = 2, unsigned NumReaders = 1, unsigned NumWriters = 1> | 
| using | buffered_input = detail::sync::input< Span, NumBuffers > | 
|  | 
| template<typename Span , unsigned NumBuffers = 2, unsigned NumReaders = 1, unsigned NumWriters = 1> | 
| using | buffered_output = detail::sync::output< Span, NumBuffers > | 
|  | 
| template<unsigned NumReaders = 1, unsigned NumWriters = 1> | 
| using | consumer_lock = detail::consumer_lock< NumReaders, NumWriters > | 
|  | 
| template<unsigned NumReaders = 1, unsigned NumWriters = 1> | 
| using | consumer_sem = detail::consumer_sem< NumReaders, NumWriters > | 
|  | 
| using | mutex = detail::mutex | 
|  | 
| template<unsigned NumReaders = 1, unsigned NumWriters = 1> | 
| using | producer_lock = detail::producer_lock< NumReaders, NumWriters > | 
|  | 
| template<unsigned NumReaders = 1, unsigned NumWriters = 1> | 
| using | producer_sem = detail::producer_sem< NumReaders, NumWriters > | 
|  | 
| using | scoped_lock = detail::scoped_lock | 
|  |