tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value > Class Template Reference
Containers

Meets requirements of a forward iterator for STL. More...

`#include <_concurrent_queue_impl.h>`

Inheritance diagram for tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >:
Collaboration diagram for tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >:

## Public Member Functions

| concurrent_queue_iterator ()
| concurrent_queue_iterator (const concurrent_queue_iterator< Container, typename Container::value_type > &other)
concurrent_queue_iterator & | operator= (const concurrent_queue_iterator< Container, typename Container::value_type > &other)
| Iterator assignment. More...
Value & | operator* () const
| Reference to current item. More...
Value * | operator-> () const
concurrent_queue_iterator & | operator++ ()
| Advance to next item in queue. More...
Value * | operator++ (int)
| Post increment. More...

## Private Member Functions

| concurrent_queue_iterator (const concurrent_queue_base_v3< typename tbb_remove_cv< Value >::type > &queue)
| Construct iterator pointing to head of queue. More...

## Friends

template<typename T , class A >
class | ::tbb::strict_ppl::concurrent_queue

## Additional Inherited Members

Protected Member Functions inherited from tbb::strict_ppl::internal::concurrent_queue_iterator_base_v3< tbb_remove_cv< Value >::type >
| concurrent_queue_iterator_base_v3 ()
| Default constructor. More...
| concurrent_queue_iterator_base_v3 (const concurrent_queue_iterator_base_v3 &i)
| Copy constructor. More...
| concurrent_queue_iterator_base_v3 (const concurrent_queue_base_v3< tbb_remove_cv< Value >::type > &queue)
| Construct iterator pointing to head of queue. More...
concurrent_queue_iterator_base_v3 & | operator= (const concurrent_queue_iterator_base_v3 &i)
void | assign (const concurrent_queue_iterator_base_v3< tbb_remove_cv< Value >::type > &other)
| Assignment. More...
void | advance ()
| Advance iterator one step towards tail of queue. More...
| ~concurrent_queue_iterator_base_v3 ()
| Destructor. More...
Protected Attributes inherited from tbb::strict_ppl::internal::concurrent_queue_iterator_base_v3< tbb_remove_cv< Value >::type >
tbb_remove_cv< Value >::type * | my_item
| Pointer to current item. More...

## Detailed Description

### template<typename Container, typename Value>
class tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >

Meets requirements of a forward iterator for STL.

Value is either the T or const T type of the container.

Definition at line 608 of file _concurrent_queue_impl.h.

## Constructor & Destructor Documentation

## concurrent_queue_iterator() [1/3]

template<typename Container, typename Value>

tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >::concurrent_queue_iterator | ( | const concurrent_queue_base_v3< typename tbb_remove_cv< Value >::type > & | queue | ) |

inline explicit private

Construct iterator pointing to head of queue.

Definition at line 757 of file _concurrent_queue_impl.h.

:
concurrent_queue_iterator_base_v3<typename tbb_remove_cv<Value>::type>(queue)
{
}

## concurrent_queue_iterator() [2/3]

template<typename Container, typename Value>

tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >::concurrent_queue_iterator | ( |  | ) |

inline

Definition at line 763 of file _concurrent_queue_impl.h.

{}

## concurrent_queue_iterator() [3/3]

template<typename Container, typename Value>

tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >::concurrent_queue_iterator | ( | const concurrent_queue_iterator< Container, typename Container::value_type > & | other | ) |

inline

If Value==Container::value_type, then this routine is the copy constructor. If Value==const Container::value_type, then this routine is a conversion constructor.

Definition at line 767 of file _concurrent_queue_impl.h.

:
concurrent_queue_iterator_base_v3<typename tbb_remove_cv<Value>::type>(other)
{}

## Member Function Documentation

## operator*()

template<typename Container, typename Value>

Value& tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >::operator* | ( |  | ) | const

inline

Reference to current item.

Definition at line 778 of file _concurrent_queue_impl.h.

{
return *static_cast<Value*>(this->my_item);
}

Referenced by tbb::internal::concurrent_queue_iterator< Container, Value >::operator++(), and tbb::internal::concurrent_queue_iterator< Container, Value >::operator->().

Here is the caller graph for this function:

## operator++() [1/2]

template<typename Container, typename Value>

concurrent_queue_iterator& tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >::operator++ | ( |  | ) |

inline

Advance to next item in queue.

Definition at line 785 of file _concurrent_queue_impl.h.

{
this->advance();
return *this;
}

Referenced by tbb::internal::concurrent_queue_iterator< Container, Value >::operator++().

Here is the caller graph for this function:

## operator++() [2/2]

template<typename Container, typename Value>

Value* tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >::operator++ | ( | int |  | ) |

inline

Post increment.

Definition at line 791 of file _concurrent_queue_impl.h.

{
Value* result = &operator*();
operator++();
return result;
}

## operator->()

template<typename Container, typename Value>

Value* tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >::operator-> | ( |  | ) | const

inline

Definition at line 782 of file _concurrent_queue_impl.h.

{return &operator*();}

## operator=()

template<typename Container, typename Value>

concurrent_queue_iterator& tbb::strict_ppl::internal::concurrent_queue_iterator< Container, Value >::operator= | ( | const concurrent_queue_iterator< Container, typename Container::value_type > & | other | ) |

inline

Iterator assignment.

Definition at line 772 of file _concurrent_queue_impl.h.

{
concurrent_queue_iterator_base_v3<typename tbb_remove_cv<Value>::type>::operator=(other);
return *this;
}

## Friends And Related Function Documentation

## ::tbb::strict_ppl::concurrent_queue

template<typename Container, typename Value>
template<typename T , class A >

friend class ::tbb::strict_ppl::concurrent_queue

friend

Definition at line 752 of file _concurrent_queue_impl.h.

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

- _concurrent_queue_impl.h

tbb::strict_ppl::internal::concurrent_queue_iterator_base_v3< tbb_remove_cv< Value >::type >::my_item
tbb_remove_cv< Value >::type * my_item
Pointer to current item.
Definition: _concurrent_queue_impl.h:658
tbb::strict_ppl::internal::concurrent_queue_iterator::operator++
concurrent_queue_iterator & operator++()
Advance to next item in queue.
Definition: _concurrent_queue_impl.h:785
tbb::internal::concurrent_queue_iterator_base_v3
Type-independent portion of concurrent_queue_iterator.
Definition: _concurrent_queue_impl.h:960
tbb::strict_ppl::internal::concurrent_queue_iterator::operator*
Value & operator*() const
Reference to current item.
Definition: _concurrent_queue_impl.h:778
tbb::strict_ppl::internal::concurrent_queue_iterator_base_v3< tbb_remove_cv< Value >::type >::advance
void advance()
Advance iterator one step towards tail of queue.
Definition: _concurrent_queue_impl.h:718

Copyright © 2005-2020 Intel Corporation. All Rights Reserved.

Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are registered trademarks or trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.