tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType > Class Template Reference
Collaboration diagram for tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >:

## Public Member Functions

| iterator_impl ()
| iterator_impl (pointer_type pos)
iterator_impl & | operator= (const iterator_impl &other)
iterator_impl & | operator= (const T &val)
iterator_impl & | operator++ ()
iterator_impl | operator++ (int)
iterator_impl & | operator-- ()
iterator_impl | operator-- (int)
bool | operator== (const iterator_impl &rhs) const
bool | operator!= (const iterator_impl &rhs) const
DereferenceType & | operator* () const
DereferenceType * | operator-> () const

## Private Types

typedef tbb::internal::conditional< tbb::internal::is_same_type< DereferenceType, T >::value, intrusive_list_node *, const intrusive_list_node * >::type | pointer_type

## Private Member Functions

| __TBB_STATIC_ASSERT ((tbb::internal::is_same_type< DereferenceType, T >::value||tbb::internal::is_same_type< DereferenceType, const T >::value), "Incorrect DereferenceType in iterator_impl")

## Private Attributes

pointer_type | my_pos

## Detailed Description

### template<class List, class T>
template<typename DereferenceType>
class tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >

Definition at line 56 of file intrusive_list.h.

## Member Typedef Documentation

## pointer_type

template<class List , class T >
template<typename DereferenceType >

typedef tbb::internal::conditional<tbb::internal::is_same_type<DereferenceType, T>::value, intrusive_list_node*, const intrusive_list_node*>::type tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::pointer_type

private

Definition at line 62 of file intrusive_list.h.

## Constructor & Destructor Documentation

## iterator_impl() [1/2]

template<class List , class T >
template<typename DereferenceType >

tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::iterator_impl | ( |  | ) |

inline

Definition at line 64 of file intrusive_list.h.

: my_pos(NULL) {}
tbb::internal::intrusive_list_base::iterator_impl::my_pos
pointer_type my_pos
Definition: intrusive_list.h:120

## iterator_impl() [2/2]

template<class List , class T >
template<typename DereferenceType >

tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::iterator_impl | ( | pointer_type | pos | ) |

inline

Definition at line 66 of file intrusive_list.h.

: my_pos(pos) {}

## Member Function Documentation

## __TBB_STATIC_ASSERT()

template<class List , class T >
template<typename DereferenceType >

tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::__TBB_STATIC_ASSERT | ( | (tbb::internal::is_same_type< DereferenceType, T >::value||tbb::internal::is_same_type< DereferenceType, const T >::value) | ,
|  | "Incorrect DereferenceType in iterator_impl< DereferenceType >" |
| ) |  |

private

## operator!=()

template<class List , class T >
template<typename DereferenceType >

bool tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator!= | ( | const iterator_impl< DereferenceType > & | rhs | ) | const

inline

Definition at line 106 of file intrusive_list.h.

{
return my_pos != rhs.my_pos;
}

References tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::my_pos.

## operator*()

template<class List , class T >
template<typename DereferenceType >

DereferenceType& tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator* | ( |  | ) | const

inline

Definition at line 110 of file intrusive_list.h.

{
return intrusive_list_base::item(my_pos);
}
tbb::internal::intrusive_list_base::item
static T & item(intrusive_list_node *node)
Definition: intrusive_list.h:51

References tbb::internal::intrusive_list_base< List, T >::item(), and tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::my_pos.

Here is the call graph for this function:

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

template<class List , class T >
template<typename DereferenceType >

iterator_impl& tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator++ | ( |  | ) |

inline

Definition at line 80 of file intrusive_list.h.

{
my_pos = my_pos->my_next_node;
return *this;
}
tbb::internal::intrusive_list_node::my_next_node
intrusive_list_node * my_next_node
Definition: intrusive_list.h:33

References tbb::internal::intrusive_list_node::my_next_node, and tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::my_pos.

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

template<class List , class T >
template<typename DereferenceType >

iterator_impl tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator++ | ( | int |  | ) |

inline

Definition at line 85 of file intrusive_list.h.

{
iterator_impl it(*this);
++*this;
return it;
}
tbb::internal::intrusive_list_base::iterator_impl::iterator_impl
iterator_impl()
Definition: intrusive_list.h:64

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

template<class List , class T >
template<typename DereferenceType >

iterator_impl& tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator-- | ( |  | ) |

inline

Definition at line 91 of file intrusive_list.h.

{
my_pos = my_pos->my_prev_node;
return *this;
}
tbb::internal::intrusive_list_node::my_prev_node
intrusive_list_node * my_prev_node
Definition: intrusive_list.h:32

References tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::my_pos, and tbb::internal::intrusive_list_node::my_prev_node.

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

template<class List , class T >
template<typename DereferenceType >

iterator_impl tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator-- | ( | int |  | ) |

inline

Definition at line 96 of file intrusive_list.h.

{
iterator_impl it(*this);
--*this;
return it;
}

## operator->()

template<class List , class T >
template<typename DereferenceType >

DereferenceType* tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator-> | ( |  | ) | const

inline

Definition at line 114 of file intrusive_list.h.

{
return &intrusive_list_base::item(my_pos);
}

References tbb::internal::intrusive_list_base< List, T >::item(), and tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::my_pos.

Here is the call graph for this function:

## operator=() [1/2]

template<class List , class T >
template<typename DereferenceType >

iterator_impl& tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator= | ( | const iterator_impl< DereferenceType > & | other | ) |

inline

Definition at line 68 of file intrusive_list.h.

{
if (this != &other) {
my_pos = other.my_pos;
}
return *this;
}

References tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::my_pos.

## operator=() [2/2]

template<class List , class T >
template<typename DereferenceType >

iterator_impl& tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator= | ( | const T & | val | ) |

inline

Definition at line 75 of file intrusive_list.h.

{
my_pos = &node(val);
return *this;
}
tbb::internal::intrusive_list_base::node
static intrusive_list_node & node(T &item)
Definition: intrusive_list.h:49

References tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::my_pos, and tbb::internal::intrusive_list_base< List, T >::node().

Here is the call graph for this function:

## operator==()

template<class List , class T >
template<typename DereferenceType >

bool tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator== | ( | const iterator_impl< DereferenceType > & | rhs | ) | const

inline

Definition at line 102 of file intrusive_list.h.

{
return my_pos == rhs.my_pos;
}

References tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::my_pos.

## Member Data Documentation

## my_pos

template<class List , class T >
template<typename DereferenceType >

pointer_type tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::my_pos

private

Definition at line 120 of file intrusive_list.h.

Referenced by tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator!=(), tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator*(), tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator++(), tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator--(), tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator->(), tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator=(), and tbb::internal::intrusive_list_base< List, T >::iterator_impl< DereferenceType >::operator==().

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

- intrusive_list.h

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.