Tatooine
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions > Struct Template Reference

#include <vertex_iterator.h>

Inheritance diagram for tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >:
[legend]
Collaboration diagram for tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >:
[legend]

Public Types

using difference_type = size_t
 
using grid_t = tatooine::rectilinear_grid< Dimensions... >
 
using value_type = vertex_handle< num_dimensions()>
 
using pointer = value_type *
 
using reference = value_type &
 
using iterator_category = std::bidirectional_iterator_tag
 

Public Member Functions

 vertex_iterator (grid_t const *const g, vertex_handle< num_dimensions()> const &h)
 
 vertex_iterator (vertex_iterator const &)=default
 
 vertex_iterator (vertex_iterator &&) noexcept=default
 
auto operator= (vertex_iterator const &) -> vertex_iterator &=default
 
auto operator= (vertex_iterator &&) noexcept -> vertex_iterator &=default
 
constexpr auto operator< (vertex_iterator const &other) const -> bool
 
constexpr auto operator<= (vertex_iterator const &other) const -> bool
 
constexpr auto operator> (vertex_iterator const &other) const -> bool
 
constexpr auto operator>= (vertex_iterator const &other) const -> bool
 

Static Public Member Functions

static constexpr auto num_dimensions () -> std::size_t
 

Private Member Functions

constexpr auto equal (vertex_iterator const &other) const
 
constexpr auto dereference () const -> auto &
 
template<size_t I>
constexpr auto decrement_check (bool &stop)
 
template<size_t... Is>
constexpr auto decrement (std::index_sequence< Is... >)
 
constexpr auto decrement ()
 
template<size_t I>
constexpr auto increment_check (bool &stop)
 
template<size_t... Is>
constexpr auto increment (std::index_sequence< Is... >)
 
constexpr auto increment ()
 

Private Attributes

grid_t const *const m_grid
 
vertex_handle< num_dimensions()> m_handle
 

Friends

class boost::iterator_core_access
 

Member Typedef Documentation

◆ difference_type

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::difference_type = size_t

◆ grid_t

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::grid_t = tatooine::rectilinear_grid<Dimensions...>

◆ iterator_category

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::iterator_category = std::bidirectional_iterator_tag

◆ pointer

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::pointer = value_type*

◆ reference

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::reference = value_type&

◆ value_type

template<typename... Dimensions>
using tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::value_type = vertex_handle<num_dimensions()>

Constructor & Destructor Documentation

◆ vertex_iterator() [1/3]

template<typename... Dimensions>
tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::vertex_iterator ( grid_t const *const  g,
vertex_handle< num_dimensions()> const &  h 
)
inline

◆ vertex_iterator() [2/3]

template<typename... Dimensions>
tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::vertex_iterator ( vertex_iterator< Dimensions > const &  )
default

◆ vertex_iterator() [3/3]

template<typename... Dimensions>
tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::vertex_iterator ( vertex_iterator< Dimensions > &&  )
defaultnoexcept

Member Function Documentation

◆ decrement() [1/2]

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::decrement ( )
inlineconstexprprivate

◆ decrement() [2/2]

template<typename... Dimensions>
template<size_t... Is>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::decrement ( std::index_sequence< Is... >  )
inlineconstexprprivate

◆ decrement_check()

template<typename... Dimensions>
template<size_t I>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::decrement_check ( bool stop)
inlineconstexprprivate

◆ dereference()

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::dereference ( ) const -> auto&
inlineconstexprprivate

◆ equal()

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::equal ( vertex_iterator< Dimensions > const &  other) const
inlineconstexprprivate

◆ increment() [1/2]

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::increment ( )
inlineconstexprprivate

◆ increment() [2/2]

template<typename... Dimensions>
template<size_t... Is>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::increment ( std::index_sequence< Is... >  )
inlineconstexprprivate

◆ increment_check()

template<typename... Dimensions>
template<size_t I>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::increment_check ( bool stop)
inlineconstexprprivate

◆ num_dimensions()

template<typename... Dimensions>
static constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::num_dimensions ( ) -> std::size_t
inlinestaticconstexpr

◆ operator<()

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::operator< ( vertex_iterator< Dimensions > const &  other) const -> bool
inlineconstexpr

◆ operator<=()

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::operator<= ( vertex_iterator< Dimensions > const &  other) const -> bool
inlineconstexpr

◆ operator=() [1/2]

template<typename... Dimensions>
auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::operator= ( vertex_iterator< Dimensions > &&  ) -> vertex_iterator &=default
defaultnoexcept

◆ operator=() [2/2]

template<typename... Dimensions>
auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::operator= ( vertex_iterator< Dimensions > const &  ) -> vertex_iterator &=default
default

◆ operator>()

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::operator> ( vertex_iterator< Dimensions > const &  other) const -> bool
inlineconstexpr

◆ operator>=()

template<typename... Dimensions>
constexpr auto tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::operator>= ( vertex_iterator< Dimensions > const &  other) const -> bool
inlineconstexpr

Friends And Related Function Documentation

◆ boost::iterator_core_access

template<typename... Dimensions>
friend class boost::iterator_core_access
friend

Member Data Documentation

◆ m_grid

template<typename... Dimensions>
grid_t const* const tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::m_grid
private

◆ m_handle

template<typename... Dimensions>
vertex_handle<num_dimensions()> tatooine::detail::rectilinear_grid::vertex_iterator< Dimensions >::m_handle
mutableprivate

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