Concurrently safe modifiers#

All member functions in this section can be performed concurrently with each other.

Pushing elements#

void push( const value_type& value );

Pushes a copy of value into the container.

Requirements: the type T must meet the CopyInsertable requirements from [container.requirements] and the CopyAssignable requirements from [copyassignable] ISO C++ Standard sections.

void push( value_type&& value );

Pushes value into the container using move semantics.

Requirements: the type T must meet the MoveInsertable requirements from [container.requirements] and the MoveAssignable requirements from [moveassignable] ISO C++ Standard sections.

value is left in a valid, but unspecified state.

template <typename... Args>
void emplace( Args&&... args );

Pushes a new element constructed from args into the container.

Requirements: the type T must meet the EmplaceConstructible requirements from [container.requirements] and the MoveAssignable requirements from [moveassignable] ISO C++ Standard sections.

Popping elements#

bool try_pop( value_type& value )

If the container is empty, does nothing.

Otherwise, copies the highest priority element from the container and assigns it to value. The popped element is destroyed.

Requirements: the type T must meet the MoveAssignable requirements from the [moveassignable] ISO C++ Standard section.

Returns: true if the element was popped; false, otherwise.