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