mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Private Attributes | Friends
m::doubly_linked_list< T, Allocator >::the_iterator< C > Struct Template Reference
Collaboration diagram for m::doubly_linked_list< T, Allocator >::the_iterator< C >:
[legend]

Public Types

using iterator_category = std::bidirectional_iterator_tag
 
using value_type = T
 
using difference_type = std::ptrdiff_t
 
using pointer = std::conditional_t< Is_Const, const T *, T * >
 
using reference = std::conditional_t< Is_Const, const T &, T & >
 

Public Member Functions

 the_iterator (node_type *node, std::uintptr_t prev)
 
the_iteratoroperator++ ()
 
the_iterator operator++ (int)
 
the_iteratoroperator-- ()
 
the_iterator operator-- (int)
 
reference operator* () const
 
pointer operator-> () const
 
bool operator== (const the_iterator &other) const
 
bool operator!= (const the_iterator &other) const
 
 operator the_iterator< true > () const
 

Static Public Attributes

static constexpr bool Is_Const = C
 

Private Attributes

node_typenode_
 
std::uintptr_t prev_
 

Friends

struct doubly_linked_list
 

Detailed Description

template<typename T, is_allocator Allocator = malloc_allocator>
template<bool C>
struct m::doubly_linked_list< T, Allocator >::the_iterator< C >

Definition at line 411 of file ADT.hpp.

Member Typedef Documentation

◆ difference_type

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
using m::doubly_linked_list< T, Allocator >::the_iterator< C >::difference_type = std::ptrdiff_t

Definition at line 419 of file ADT.hpp.

◆ iterator_category

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
using m::doubly_linked_list< T, Allocator >::the_iterator< C >::iterator_category = std::bidirectional_iterator_tag

Definition at line 417 of file ADT.hpp.

◆ pointer

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
using m::doubly_linked_list< T, Allocator >::the_iterator< C >::pointer = std::conditional_t<Is_Const, const T*, T*>

Definition at line 420 of file ADT.hpp.

◆ reference

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
using m::doubly_linked_list< T, Allocator >::the_iterator< C >::reference = std::conditional_t<Is_Const, const T&, T&>

Definition at line 421 of file ADT.hpp.

◆ value_type

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
using m::doubly_linked_list< T, Allocator >::the_iterator< C >::value_type = T

Definition at line 418 of file ADT.hpp.

Constructor & Destructor Documentation

◆ the_iterator()

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
m::doubly_linked_list< T, Allocator >::the_iterator< C >::the_iterator ( node_type node,
std::uintptr_t  prev 
)
inline

Definition at line 428 of file ADT.hpp.

Member Function Documentation

◆ operator the_iterator< true >()

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
m::doubly_linked_list< T, Allocator >::the_iterator< C >::operator the_iterator< true > ( ) const
inline

◆ operator!=()

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
bool m::doubly_linked_list< T, Allocator >::the_iterator< C >::operator!= ( const the_iterator< C > &  other) const
inline

◆ operator*()

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
reference m::doubly_linked_list< T, Allocator >::the_iterator< C >::operator* ( ) const
inline

◆ operator++() [1/2]

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
the_iterator & m::doubly_linked_list< T, Allocator >::the_iterator< C >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
the_iterator m::doubly_linked_list< T, Allocator >::the_iterator< C >::operator++ ( int  )
inline

◆ operator--() [1/2]

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
the_iterator & m::doubly_linked_list< T, Allocator >::the_iterator< C >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
the_iterator m::doubly_linked_list< T, Allocator >::the_iterator< C >::operator-- ( int  )
inline

◆ operator->()

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
pointer m::doubly_linked_list< T, Allocator >::the_iterator< C >::operator-> ( ) const
inline

◆ operator==()

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
bool m::doubly_linked_list< T, Allocator >::the_iterator< C >::operator== ( const the_iterator< C > &  other) const
inline

Friends And Related Function Documentation

◆ doubly_linked_list

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
friend struct doubly_linked_list
friend

Definition at line 413 of file ADT.hpp.

Field Documentation

◆ Is_Const

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
constexpr bool m::doubly_linked_list< T, Allocator >::the_iterator< C >::Is_Const = C
staticconstexpr

Definition at line 415 of file ADT.hpp.

◆ node_

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
node_type* m::doubly_linked_list< T, Allocator >::the_iterator< C >::node_
private

◆ prev_

template<typename T , is_allocator Allocator = malloc_allocator>
template<bool C>
std::uintptr_t m::doubly_linked_list< T, Allocator >::the_iterator< C >::prev_
private

The documentation for this struct was generated from the following file: