Construction, destruction, copying¶
Empty container constructors¶
concurrent_queue(); explicit concurrent_queue( const allocator_type& alloc );Constructs empty
concurrent_queue. If provided uses the allocatorallocto allocate the memory.
Constructor from the sequence of elements¶
template <typename InputIterator> concurrent_queue( InputIterator first, InputIterator last, const allocator_type& alloc = allocator_type() );Constructs a
concurrent_queuecontaining all elements from the half-open interval[first, last)using the allocatorallocto allocate the memory.Requirements: the type
InputIteratorshall meet the InputIterator requirements from[input.iterators]ISO C++ Standard section.
Copying constructors¶
concurrent_queue( const concurrent_queue& other ); concurrent_queue( const concurrent_queue& other, const allocator_type& alloc );Constructs a copy of
other.If the allocator argument is not provided, it is obtained by
std::allocator_traits<allocator_type>::select_on_container_copy_construction(other.get_allocator()).The behavior is undefined in case of concurrent operations with
other.
Moving constructors¶
concurrent_queue( concurrent_queue&& other ); concurrent_queue( concurrent_queue&& other, const allocator_type& alloc );Constructs a
concurrent_queuewith the content ofotherusing move semantics.
otheris left in a valid, but unspecified state.If the allocator argument is not provided, it is obtained by
std::move(other.get_allocator()).The behavior is undefined in case of concurrent operations with
other.
Destructor¶
~concurrent_queue();Destroys the
concurrent_queue. Calls destructors of the stored elements and deallocates the used storage.The behavior is undefined in case of concurrent operations with
*this.