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