Intel® oneAPI Threading Building Blocks Developer Guide and API Reference
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.