xrpld
Loading...
Searching...
No Matches
beast::LockFreeStackIterator< Container, IsConst > Class Template Reference

#include <LockFreeStack.h>

Collaboration diagram for beast::LockFreeStackIterator< Container, IsConst >:

Public Types

using iterator_category = std::forward_iterator_tag
using value_type = Container::value_type
using difference_type = Container::difference_type
using pointer
using reference

Public Member Functions

 LockFreeStackIterator ()=default
 LockFreeStackIterator (NodePtr node)
template<bool OtherIsConst>
 LockFreeStackIterator (LockFreeStackIterator< Container, OtherIsConst > const &other)
LockFreeStackIteratoroperator= (NodePtr node)
LockFreeStackIteratoroperator++ ()
LockFreeStackIterator operator++ (int)
NodePtr node () const
reference operator* () const
pointer operator-> () const

Protected Types

using Node = Container::Node
using NodePtr = std::conditional_t<IsConst, Node const*, Node*>

Private Attributes

NodePtr node_ {}

Detailed Description

template<class Container, bool IsConst>
class beast::LockFreeStackIterator< Container, IsConst >

Definition at line 12 of file LockFreeStack.h.

Member Typedef Documentation

◆ Node

template<class Container, bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::Node = Container::Node
protected

Definition at line 15 of file LockFreeStack.h.

◆ NodePtr

template<class Container, bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::NodePtr = std::conditional_t<IsConst, Node const*, Node*>
protected

Definition at line 16 of file LockFreeStack.h.

◆ iterator_category

template<class Container, bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::iterator_category = std::forward_iterator_tag

Definition at line 19 of file LockFreeStack.h.

◆ value_type

template<class Container, bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::value_type = Container::value_type

Definition at line 20 of file LockFreeStack.h.

◆ difference_type

template<class Container, bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::difference_type = Container::difference_type

Definition at line 21 of file LockFreeStack.h.

◆ pointer

template<class Container, bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::pointer

◆ reference

template<class Container, bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::reference
Initial value:
std::
conditional_t<IsConst, typename Container::const_reference, typename Container::reference>

Definition at line 24 of file LockFreeStack.h.

Constructor & Destructor Documentation

◆ LockFreeStackIterator() [1/3]

template<class Container, bool IsConst>
beast::LockFreeStackIterator< Container, IsConst >::LockFreeStackIterator ( )
default

◆ LockFreeStackIterator() [2/3]

template<class Container, bool IsConst>
beast::LockFreeStackIterator< Container, IsConst >::LockFreeStackIterator ( NodePtr node)

Definition at line 29 of file LockFreeStack.h.

◆ LockFreeStackIterator() [3/3]

template<class Container, bool IsConst>
template<bool OtherIsConst>
beast::LockFreeStackIterator< Container, IsConst >::LockFreeStackIterator ( LockFreeStackIterator< Container, OtherIsConst > const & other)
explicit

Definition at line 34 of file LockFreeStack.h.

Member Function Documentation

◆ operator=()

template<class Container, bool IsConst>
LockFreeStackIterator & beast::LockFreeStackIterator< Container, IsConst >::operator= ( NodePtr node)

Definition at line 40 of file LockFreeStack.h.

◆ operator++() [1/2]

template<class Container, bool IsConst>
LockFreeStackIterator & beast::LockFreeStackIterator< Container, IsConst >::operator++ ( )

Definition at line 47 of file LockFreeStack.h.

◆ operator++() [2/2]

template<class Container, bool IsConst>
LockFreeStackIterator beast::LockFreeStackIterator< Container, IsConst >::operator++ ( int )

Definition at line 54 of file LockFreeStack.h.

◆ node()

template<class Container, bool IsConst>
NodePtr beast::LockFreeStackIterator< Container, IsConst >::node ( ) const

Definition at line 62 of file LockFreeStack.h.

◆ operator*()

template<class Container, bool IsConst>
reference beast::LockFreeStackIterator< Container, IsConst >::operator* ( ) const

Definition at line 68 of file LockFreeStack.h.

◆ operator->()

template<class Container, bool IsConst>
pointer beast::LockFreeStackIterator< Container, IsConst >::operator-> ( ) const

Definition at line 74 of file LockFreeStack.h.

Member Data Documentation

◆ node_

template<class Container, bool IsConst>
NodePtr beast::LockFreeStackIterator< Container, IsConst >::node_ {}
private

Definition at line 80 of file LockFreeStack.h.