Arene Base
Fundamental Utilities For Safety Critical C++
Loading...
Searching...
No Matches
arene::base::inline_map_reference_iterator< MapBase, IsConst > Class Template Reference

iterator type used by inline_map_reference and const_inline_map_reference More...

Inheritance diagram for arene::base::inline_map_reference_iterator< MapBase, IsConst >:
Inheritance graph

Public Types

using difference_type = std::ptrdiff_t
 iterator difference type
 
using iterator_category = std::bidirectional_iterator_tag
 iterator category
 
using map_base_type = MapBase
 inline_map base type
 
using pointer = maybe_const_t<value_type>*
 pointer type
 
using reference = maybe_const_t<value_type>&
 reference type
 
using value_type = typename MapBase::value_type
 iterator value type
 

Public Member Functions

 inline_map_reference_iterator () noexcept
 default construct an invalid iterator
 
template<class I, constraints< std::enable_if_t< std::is_base_of< MapBase, typename I::inline_map_type >::value &&(IsConst||(!is_const_iterator_v< I >))>>
 inline_map_reference_iterator (I const &itr) noexcept
 construct from an inline_map iterator type
 
template<bool OtherConst, constraints< std::enable_if_t< IsConst &&!OtherConst > > = nullptr>
 inline_map_reference_iterator (inline_map_reference_iterator< MapBase, OtherConst > const &other) noexcept
 implictly construct from a non-const inline_map_reference_iterator
 
auto get_index (inline_map_passkey) const noexcept -> index_type
 obtain the position that this iterator references within the map
 
auto get_map (inline_map_passkey) const noexcept -> maybe_const_t< map_base_type > *
 obtain a pointer to the map that this iterator references
 
auto operator* () const noexcept -> reference
 dereference
 

Friends

auto operator== (inline_map_reference_iterator const &lhs, inline_map_reference_iterator const &rhs) noexcept -> bool
 equality
 
auto step_backward (inline_container_detail::iterator_interface_tag, inline_map_reference_iterator &iter) noexcept -> void
 basis function for decrement
 
auto step_forward (inline_container_detail::iterator_interface_tag, inline_map_reference_iterator &iter) noexcept -> void
 basis function for increment
 

Detailed Description

template<class MapBase, bool IsConst>
class arene::base::inline_map_reference_iterator< MapBase, IsConst >

iterator type used by inline_map_reference and const_inline_map_reference

Template Parameters
MapBasebase type of an inline_map
IsConstspecifies if this iterator provides const or non-const access

Member Typedef Documentation

◆ difference_type

template<class MapBase, bool IsConst>
using arene::base::inline_map_reference_iterator< MapBase, IsConst >::difference_type = std::ptrdiff_t

iterator difference type

◆ iterator_category

template<class MapBase, bool IsConst>
using arene::base::inline_map_reference_iterator< MapBase, IsConst >::iterator_category = std::bidirectional_iterator_tag

iterator category

◆ map_base_type

template<class MapBase, bool IsConst>
using arene::base::inline_map_reference_iterator< MapBase, IsConst >::map_base_type = MapBase

inline_map base type

◆ pointer

template<class MapBase, bool IsConst>
using arene::base::inline_map_reference_iterator< MapBase, IsConst >::pointer = maybe_const_t<value_type>*

pointer type

◆ reference

template<class MapBase, bool IsConst>
using arene::base::inline_map_reference_iterator< MapBase, IsConst >::reference = maybe_const_t<value_type>&

reference type

◆ value_type

template<class MapBase, bool IsConst>
using arene::base::inline_map_reference_iterator< MapBase, IsConst >::value_type = typename MapBase::value_type

iterator value type

Constructor & Destructor Documentation

◆ inline_map_reference_iterator() [1/3]

template<class MapBase, bool IsConst>
arene::base::inline_map_reference_iterator< MapBase, IsConst >::inline_map_reference_iterator ( )
inlinenoexcept

default construct an invalid iterator

◆ inline_map_reference_iterator() [2/3]

template<class MapBase, bool IsConst>
template<class I, constraints< std::enable_if_t< std::is_base_of< MapBase, typename I::inline_map_type >::value &&(IsConst||(!is_const_iterator_v< I >))>>
arene::base::inline_map_reference_iterator< MapBase, IsConst >::inline_map_reference_iterator ( I const & itr)
inlineexplicitnoexcept

construct from an inline_map iterator type

Template Parameters
Iinline_map iterator type
Parameters
itrbase iterator

◆ inline_map_reference_iterator() [3/3]

template<class MapBase, bool IsConst>
template<bool OtherConst, constraints< std::enable_if_t< IsConst &&!OtherConst > > = nullptr>
arene::base::inline_map_reference_iterator< MapBase, IsConst >::inline_map_reference_iterator ( inline_map_reference_iterator< MapBase, OtherConst > const & other)
inlinenoexcept

implictly construct from a non-const inline_map_reference_iterator

Template Parameters
OtherConstspecifies if the other iterator is const
Parameters
otheriterator

Member Function Documentation

◆ get_index()

template<class MapBase, bool IsConst>
auto arene::base::inline_map_reference_iterator< MapBase, IsConst >::get_index ( inline_map_passkey ) const -> index_type
inlinenoexcept

obtain the position that this iterator references within the map

Returns
index position of this iterator

◆ get_map()

template<class MapBase, bool IsConst>
auto arene::base::inline_map_reference_iterator< MapBase, IsConst >::get_map ( inline_map_passkey ) const -> maybe_const_t<map_base_type>*
inlinenoexcept

obtain a pointer to the map that this iterator references

Returns
pointer to the referenced map

◆ operator*()

template<class MapBase, bool IsConst>
auto arene::base::inline_map_reference_iterator< MapBase, IsConst >::operator* ( ) const -> reference
inlinenoexcept

dereference

Returns
value in the associated inline_map

Friends And Related Symbol Documentation

◆ operator==

template<class MapBase, bool IsConst>
auto operator== ( inline_map_reference_iterator< MapBase, IsConst > const & lhs,
inline_map_reference_iterator< MapBase, IsConst > const & rhs ) -> bool
friend

equality

Parameters
lhsleft iterator
rhsright iterator
Returns
true if iterators are equal, otherwise false

◆ step_backward

template<class MapBase, bool IsConst>
auto step_backward ( inline_container_detail::iterator_interface_tag ,
inline_map_reference_iterator< MapBase, IsConst > & iter ) -> void
friend

basis function for decrement

Parameters
iteriterator to decrement

◆ step_forward

template<class MapBase, bool IsConst>
auto step_forward ( inline_container_detail::iterator_interface_tag ,
inline_map_reference_iterator< MapBase, IsConst > & iter ) -> void
friend

basis function for increment

Parameters
iteriterator to increment

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