Home ⌂Doc Index ◂Up ▴
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 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

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

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

◆ 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

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.

◆ 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

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

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


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.