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));
const_iterator begin() const
static T & item(intrusive_list_node *node)
static T & item(intrusive_list_node *node)
const_iterator end() const
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
bool operator!=(const Iterator &it) const
Double linked list of items of type T that is derived from intrusive_list_node class.
static intrusive_list_node & node(T &item)
iterator erase(iterator it)
List of element of type T, where T is derived from intrusive_list_node.
Iterator & operator=(const Iterator &it)
static intrusive_list_node & node(T &val)
intrusive_list_node * my_next_node
intrusive_list_node * my_prev_node
intrusive_list_node my_head
Pointer to the head node.
const_iterator(const intrusive_list_node *pos)
iterator_impl(intrusive_list_node *pos)
size_t my_size
Number of list elements.
bool operator==(const Iterator &it) const
Double linked list of items of type T containing a member of type intrusive_list_node.
const T & operator*() const
static T & item(intrusive_list_node *node)
Data structure to be inherited by the types that can form intrusive lists.
iterator(intrusive_list_node *pos)
static intrusive_list_node & node(T &val)
const T * operator->() const
intrusive_list_node * my_pos
Node the iterator points to at the moment.
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.