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