distortos  v0.7.0
object-oriented C++ RTOS for microcontrollers
IntrusiveList.hpp File Reference

IntrusiveList template class header. More...

#include <iterator>
#include <cstddef>
Include dependency graph for IntrusiveList.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  estd::IntrusiveListNode
 IntrusiveListNode class is the node that is needed for the object to be linked in IntrusiveList. More...
 
class  estd::IntrusiveListNode::LinkAccessKey
 
class  estd::internal::IntrusiveListBase
 IntrusiveListBase class provides base functionalities for IntrusiveList class, but without any knowledge about types. More...
 
class  estd::IntrusiveListIterator< T, NodePointer, U >
 IntrusiveListIterator class is an iterator of elements on IntrusiveList. More...
 
class  estd::IntrusiveListConstIterator< T, NodePointer, U >
 IntrusiveListConstIterator class is a const iterator of elements on IntrusiveList. More...
 
class  estd::IntrusiveList< T, NodePointer, U >
 IntrusiveList class is an intrusive circular doubly linked list. More...
 

Namespaces

 estd
 Collection of useful templates.
 
 estd::internal
 Internals of estd namespace - should not be used directly!
 

Functions

void estd::internal::swap (IntrusiveListBase &left, IntrusiveListBase &right)
 Swaps contents of two lists. More...
 
template<typename T , IntrusiveListNode T::* NodePointer, typename U = T>
bool estd::operator!= (const IntrusiveListIterator< T, NodePointer, U > &left, const IntrusiveListIterator< T, NodePointer, U > &right)
 IntrusiveListIterator's "not equal to" comparison operator. More...
 
template<typename T , const IntrusiveListNode T::* NodePointer, typename U = T>
bool estd::operator!= (const IntrusiveListConstIterator< T, NodePointer, U > &left, const IntrusiveListConstIterator< T, NodePointer, U > &right)
 IntrusiveListConstIterator's "not equal to" comparison operator. More...
 
template<typename T , IntrusiveListNode T::* NodePointer, const IntrusiveListNode T::* ConstNodePointer, typename U = T>
bool estd::operator== (const IntrusiveListIterator< T, NodePointer, U > &left, const IntrusiveListConstIterator< T, ConstNodePointer, U > &right)
 "Equal to" comparison operator for IntrusiveListIterator and IntrusiveListConstIterator More...
 
template<typename T , IntrusiveListNode T::* NodePointer, const IntrusiveListNode T::* ConstNodePointer, typename U = T>
bool estd::operator!= (const IntrusiveListIterator< T, NodePointer, U > &left, const IntrusiveListConstIterator< T, ConstNodePointer, U > &right)
 "Not equal to" comparison operator for IntrusiveListIterator and IntrusiveListConstIterator More...
 
template<typename T , IntrusiveListNode T::* NodePointer, const IntrusiveListNode T::* ConstNodePointer, typename U = T>
bool estd::operator!= (const IntrusiveListConstIterator< T, ConstNodePointer, U > &left, const IntrusiveListIterator< T, NodePointer, U > &right)
 "Not equal to" comparison operator for IntrusiveListConstIterator and IntrusiveListIterator More...
 
template<typename T , IntrusiveListNode T::* NodePointer, typename U = T>
void estd::swap (IntrusiveList< T, NodePointer, U > &left, IntrusiveList< T, NodePointer, U > &right)
 Swaps contents of two lists. More...
 

Detailed Description

IntrusiveList template class header.

Author
Copyright (C) 2015-2018 Kamil Szczygiel http://www.distortec.com http://www.freddiechopin.info
License
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.