Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Go to the documentation of this file.
17 #ifndef _TBB_intrusive_list_H
18 #define _TBB_intrusive_list_H
40 template <
class List,
class T>
52 template<
class Iterator>
54 Iterator&
self () {
return *
static_cast<Iterator*
>(
this); }
80 return my_pos == it.my_pos;
84 return my_pos != it.my_pos;
98 Iterator result =
self();
104 Iterator result =
self();
113 #if TBB_USE_ASSERT >= 2
163 const_iterator
end ()
const {
return const_iterator(&
my_head); }
167 "Object with intrusive list node can be part of only one intrusive list simultaneously" );
208 template <
class T,
class U,
intrusive_list_node U::*NodePtr>
220 return *
reinterpret_cast<T*
>((
char*)
node - ((ptrdiff_t)&(
reinterpret_cast<T*
>(0x1000)->*NodePtr) - 0x1000));
List of element of type T, where T is derived from intrusive_list_node.
bool operator==(const Iterator &it) const
static intrusive_list_node & node(T &val)
Double linked list of items of type T containing a member of type intrusive_list_node.
static T & item(intrusive_list_node *node)
static T & item(intrusive_list_node *node)
const_iterator end() const
size_t my_size
Number of list elements.
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
const_iterator begin() const
Data structure to be inherited by the types that can form intrusive lists.
intrusive_list_node * my_pos
Node the iterator points to at the moment.
intrusive_list_node * my_next_node
const_iterator(const intrusive_list_node *pos)
iterator erase(iterator it)
intrusive_list_node my_head
Pointer to the head node.
iterator(intrusive_list_node *pos)
static intrusive_list_node & node(T &val)
const T * operator->() const
iterator_impl(intrusive_list_node *pos)
bool operator!=(const Iterator &it) const
const T & operator*() const
static intrusive_list_node & node(T &item)
Iterator & operator=(const Iterator &it)
intrusive_list_node * my_prev_node
Double linked list of items of type T that is derived from intrusive_list_node class.
static T & item(intrusive_list_node *node)
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.