Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
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_iteratoroperator= (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_iteratoroperator++ ()
 
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 151 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 153 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

◆ 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.

164 : 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.

172 : 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)
inlineprivate

Definition at line 190 of file _concurrent_skip_list_impl.h.

190 : 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

◆ 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.

177  {
178  __TBB_ASSERT(my_node_ptr != nullptr, NULL);
179  my_node_ptr = my_node_ptr->next(0);
180  return *this;
181  }
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165

References __TBB_ASSERT, and tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::my_node_ptr.

◆ 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.

183  {
184  skip_list_iterator tmp = *this;
185  ++*this;
186  return tmp;
187  }

◆ 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.

175 { 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.

166  {
167  my_node_ptr = other.my_node_ptr;
168  return *this;
169  }

References tbb::interface10::internal::skip_list_iterator< NodeType, is_const >::my_node_ptr.

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 195 of file _concurrent_skip_list_impl.h.

Member Data Documentation

◆ my_node_ptr


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

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.