distortos  v0.5.0
object-oriented C++ RTOS for microcontrollers
IntrusiveForwardList.hpp File Reference

IntrusiveForwardList template class header. More...

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

Go to the source code of this file.

Classes

class  estd::IntrusiveForwardListNode
 IntrusiveForwardListNode class is the node that is needed for the object to be linked in IntrusiveForwardList. More...
 
class  estd::IntrusiveForwardListNode::AccessKey
 
class  estd::internal::IntrusiveForwardListBase
 IntrusiveForwardListBase class provides base functionalities for IntrusiveForwardList class, but without any knowledge about types. More...
 
class  estd::IntrusiveForwardListIterator< T, NodePointer, U >
 IntrusiveForwardListIterator class is an iterator of elements on IntrusiveForwardList. More...
 
class  estd::IntrusiveForwardListConstIterator< T, NodePointer, U >
 IntrusiveForwardListConstIterator class is a const iterator of elements on IntrusiveForwardList. More...
 
class  estd::IntrusiveForwardList< T, NodePointer, U >
 IntrusiveForwardList class is an intrusive linear singly linked list. More...
 

Namespaces

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

Functions

void estd::swap (IntrusiveForwardListNode &left, IntrusiveForwardListNode &right)
 Swaps contents of two nodes. More...
 
void estd::internal::swap (IntrusiveForwardListBase &left, IntrusiveForwardListBase &right)
 Swaps contents of two lists. More...
 
template<typename T , IntrusiveForwardListNode T::* NodePointer, typename U = T>
bool estd::operator!= (const IntrusiveForwardListIterator< T, NodePointer, U > &left, const IntrusiveForwardListIterator< T, NodePointer, U > &right)
 IntrusiveForwardListIterator's "not equal to" comparison operator. More...
 
template<typename T , const IntrusiveForwardListNode T::* NodePointer, typename U = T>
bool estd::operator!= (const IntrusiveForwardListConstIterator< T, NodePointer, U > &left, const IntrusiveForwardListConstIterator< T, NodePointer, U > &right)
 IntrusiveForwardListConstIterator's "not equal to" comparison operator. More...
 
template<typename T , IntrusiveForwardListNode T::* NodePointer, const IntrusiveForwardListNode T::* ConstNodePointer, typename U = T>
bool estd::operator== (const IntrusiveForwardListIterator< T, NodePointer, U > &left, const IntrusiveForwardListConstIterator< T, ConstNodePointer, U > &right)
 "Equal to" comparison operator for IntrusiveForwardListIterator and IntrusiveForwardListConstIterator More...
 
template<typename T , IntrusiveForwardListNode T::* NodePointer, const IntrusiveForwardListNode T::* ConstNodePointer, typename U = T>
bool estd::operator!= (const IntrusiveForwardListIterator< T, NodePointer, U > &left, const IntrusiveForwardListConstIterator< T, ConstNodePointer, U > &right)
 "Not equal to" comparison operator for IntrusiveForwardListIterator and IntrusiveForwardListConstIterator More...
 
template<typename T , IntrusiveForwardListNode T::* NodePointer, const IntrusiveForwardListNode T::* ConstNodePointer, typename U = T>
bool estd::operator!= (const IntrusiveForwardListConstIterator< T, ConstNodePointer, U > &left, const IntrusiveForwardListIterator< T, NodePointer, U > &right)
 "Not equal to" comparison operator for IntrusiveForwardListConstIterator and IntrusiveForwardListIterator More...
 
template<typename T , IntrusiveForwardListNode T::* NodePointer, typename U = T>
void estd::swap (IntrusiveForwardList< T, NodePointer, U > &left, IntrusiveForwardList< T, NodePointer, U > &right)
 Swaps contents of two lists. More...
 

Detailed Description

IntrusiveForwardList template class header.

Author
Copyright (C) 2015-2017 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/.