tbb::interface10::internal::skip_list_iterator< NodeType, is_const > Class Template Reference

`#include <_concurrent_skip_list_impl.h>`

Inheritance diagram for tbb::interface10::internal::skip_list_iterator< NodeType, is_const >:
Collaboration diagram for tbb::interface10::internal::skip_list_iterator< NodeType, is_const >:

## Public Types

using | iterator_category = std::forward_iterator_tag
using | value_type = typename node_type::value_type
using | difference_type = std::ptrdiff_t
using | pointer = typename std::conditional< is_const, typename node_type::const_pointer, typename node_type::pointer >::type
using | reference = typename std::conditional< is_const, typename node_type::const_reference, typename node_type::reference >::type

## Public Member Functions

| skip_list_iterator ()
| skip_list_iterator (const skip_list_iterator< node_type, false > &other)
skip_list_iterator & | operator= (const skip_list_iterator< node_type, false > &other)
template<typename T = void, typename = typename std::enable_if<is_const, T>::type>
| skip_list_iterator (const skip_list_iterator< node_type, true > &other)
reference | operator* () const
pointer | operator-> () const
skip_list_iterator & | operator++ ()
skip_list_iterator | operator++ (int)

## Private Types

using | node_type = NodeType
using | node_ptr = node_type *

## Private Member Functions

| skip_list_iterator (node_type *n)

## Private Attributes

node_ptr | my_node_ptr

## Friends

template<typename Traits >
class | concurrent_skip_list
class | skip_list_iterator< NodeType, true >
class | const_range
class | range
template<typename T , bool M, bool U>
bool | operator== (const skip_list_iterator< T, M > &, const skip_list_iterator< T, U > &)
template<typename T , bool M, bool U>
bool | operator!= (const skip_list_iterator< T, M > &, const skip_list_iterator< T, U > &)

## Detailed Description

### template<typename NodeType, bool is_const>
class tbb::interface10::internal::skip_list_iterator< NodeType, is_const >

Definition at line 144 of file _concurrent_skip_list_impl.h.

## Member Typedef Documentation

## difference_type

template<typename NodeType, bool is_const>

using tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::difference_type = std::ptrdiff_t

Definition at line 150 of file _concurrent_skip_list_impl.h.

## iterator_category

template<typename NodeType, bool is_const>

using tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::iterator_category = std::forward_iterator_tag

Definition at line 148 of file _concurrent_skip_list_impl.h.

## node_ptr

template<typename NodeType, bool is_const>

using tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::node_ptr = node_type*

private

Definition at line 146 of file _concurrent_skip_list_impl.h.

## node_type

template<typename NodeType, bool is_const>

using tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::node_type = NodeType

private

Definition at line 145 of file _concurrent_skip_list_impl.h.

## pointer

template<typename NodeType, bool is_const>

using tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::pointer = typename std::conditional<is_const, typename node_type::const_pointer, typename node_type::pointer>::type

Definition at line 152 of file _concurrent_skip_list_impl.h.

## reference

template<typename NodeType, bool is_const>

using tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::reference = typename std::conditional<is_const, typename node_type::const_reference, typename node_type::reference>::type

Definition at line 154 of file _concurrent_skip_list_impl.h.

## value_type

template<typename NodeType, bool is_const>

using tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::value_type = typename node_type::value_type

Definition at line 149 of file _concurrent_skip_list_impl.h.

## Constructor & Destructor Documentation

## skip_list_iterator() [1/4]

template<typename NodeType, bool is_const>

tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::skip_list_iterator | ( |  | ) |

inline

Definition at line 156 of file _concurrent_skip_list_impl.h.

: my_node_ptr(nullptr) {}

## skip_list_iterator() [2/4]

template<typename NodeType, bool is_const>

tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::skip_list_iterator | ( | const skip_list_iterator< node_type, false > & | other | ) |

inline

Definition at line 164 of file _concurrent_skip_list_impl.h.

: my_node_ptr(other.my_node_ptr) {}

## skip_list_iterator() [3/4]

template<typename NodeType, bool is_const>
template<typename T = void, typename = typename std::enable_if<is_const, T>::type>

tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::skip_list_iterator | ( | const skip_list_iterator< node_type, true > & | other | ) |

inline

Definition at line 172 of file _concurrent_skip_list_impl.h.

: my_node_ptr(other.my_node_ptr) {}

## skip_list_iterator() [4/4]

template<typename NodeType, bool is_const>

tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::skip_list_iterator | ( | node_type * | n | ) |

inline private

Definition at line 190 of file _concurrent_skip_list_impl.h.

: my_node_ptr(n) {}

## Member Function Documentation

## operator*()

template<typename NodeType, bool is_const>

reference tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::operator* | ( |  | ) | const

inline

Definition at line 174 of file _concurrent_skip_list_impl.h.

{ return *(my_node_ptr->storage()); }

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

template<typename NodeType, bool is_const>

skip_list_iterator& tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::operator++ | ( |  | ) |

inline

Definition at line 177 of file _concurrent_skip_list_impl.h.

{
__TBB_ASSERT(my_node_ptr != nullptr, NULL);
my_node_ptr = my_node_ptr->next(0);
return *this;
}

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

template<typename NodeType, bool is_const>

skip_list_iterator tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::operator++ | ( | int |  | ) |

inline

Definition at line 183 of file _concurrent_skip_list_impl.h.

{
skip_list_iterator tmp = *this;
++*this;
return tmp;
}

## operator->()

template<typename NodeType, bool is_const>

pointer tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::operator-> | ( |  | ) | const

inline

Definition at line 175 of file _concurrent_skip_list_impl.h.

{ return &**this; }

## operator=()

template<typename NodeType, bool is_const>

skip_list_iterator& tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::operator= | ( | const skip_list_iterator< node_type, false > & | other | ) |

inline

Definition at line 166 of file _concurrent_skip_list_impl.h.

{
my_node_ptr = other.my_node_ptr;
return *this;
}

## Friends And Related Function Documentation

## concurrent_skip_list

template<typename NodeType, bool is_const>
template<typename Traits >

friend class concurrent_skip_list

friend

Definition at line 195 of file _concurrent_skip_list_impl.h.

## const_range

template<typename NodeType, bool is_const>

friend class const_range

friend

Definition at line 199 of file _concurrent_skip_list_impl.h.

## operator!=

template<typename NodeType, bool is_const>
template<typename T , bool M, bool U>

bool operator!= | ( | const skip_list_iterator< T, M > & | ,
|  | const skip_list_iterator< T, U > & |
| ) |  |

friend

## operator==

template<typename NodeType, bool is_const>
template<typename T , bool M, bool U>

bool operator== | ( | const skip_list_iterator< T, M > & | ,
|  | const skip_list_iterator< T, U > & |
| ) |  |

friend

## range

template<typename NodeType, bool is_const>

friend class range

friend

Definition at line 200 of file _concurrent_skip_list_impl.h.

## skip_list_iterator< NodeType, true >

template<typename NodeType, bool is_const>

friend class skip_list_iterator< NodeType, true >

friend

Definition at line 197 of file _concurrent_skip_list_impl.h.

## Member Data Documentation

## my_node_ptr

template<typename NodeType, bool is_const>

node_ptr tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::my_node_ptr

private

Definition at line 192 of file _concurrent_skip_list_impl.h.

Referenced by tbb::interface10::internal::concurrent_skip_list< Traits >::const_range_type::const_range_type(), tbb::interface10::internal::concurrent_skip_list< Traits >::const_range_type::empty(), tbb::interface10::internal::concurrent_skip_list< Traits >::fill_prev_next_by_ptr(), tbb::interface10::internal::concurrent_skip_list< Traits >::get_iterator(), tbb::interface10::internal::concurrent_skip_list< Traits >::const_range_type::is_divisible(), tbb::interface10::internal::operator!=(), tbb::interface10::internal::skip_list_iterator< list_node_type, true >::operator*(), tbb::interface10::internal::skip_list_iterator< list_node_type, true >::operator++(), tbb::interface10::internal::skip_list_iterator< list_node_type, true >::operator=(), and tbb::interface10::internal::operator==().

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

- _concurrent_skip_list_impl.h

__TBB_ASSERT
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165
tbb::interface10::internal::skip_list_iterator::my_node_ptr
node_ptr my_node_ptr
Definition: _concurrent_skip_list_impl.h:192
tbb::interface10::internal::skip_list_iterator::skip_list_iterator
skip_list_iterator()
Definition: _concurrent_skip_list_impl.h:156

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.