Dash Core Source Documentation (0.16.0.1)
Find detailed information regarding the Dash Core source code.
#include <champ_iterator.hpp>
Classes | |
struct | end_t |
Public Types | |
using | tree_t = champ< T, Hash, Eq, MP, B > |
using | node_t = typename tree_t::node_t |
Public Member Functions | |
champ_iterator ()=default | |
champ_iterator (const tree_t &v) | |
champ_iterator (const tree_t &v, end_t) | |
champ_iterator (const champ_iterator &other) | |
Public Member Functions inherited from immer::detail::iterator_facade< champ_iterator< T, Hash, Eq, MP, B >, std::forward_iterator_tag, T, const T &, std::ptrdiff_t, const T *> | |
const T & | operator* () const |
const T * | operator-> () const |
reference_proxy | operator[] (std::ptrdiff_t n) const |
bool | operator== (const champ_iterator< T, Hash, Eq, MP, B > &rhs) const |
bool | operator!= (const champ_iterator< T, Hash, Eq, MP, B > &rhs) const |
champ_iterator< T, Hash, Eq, MP, B > & | operator++ () |
champ_iterator< T, Hash, Eq, MP, B > | operator++ (int) |
champ_iterator< T, Hash, Eq, MP, B > & | operator-- () |
champ_iterator< T, Hash, Eq, MP, B > | operator-- (int) |
champ_iterator< T, Hash, Eq, MP, B > & | operator+= (std::ptrdiff_t n) |
champ_iterator< T, Hash, Eq, MP, B > & | operator-= (std::ptrdiff_t n) |
champ_iterator< T, Hash, Eq, MP, B > | operator+ (std::ptrdiff_t n) const |
champ_iterator< T, Hash, Eq, MP, B > | operator- (std::ptrdiff_t n) const |
std::ptrdiff_t | operator- (const champ_iterator< T, Hash, Eq, MP, B > &rhs) const |
bool | operator< (const champ_iterator< T, Hash, Eq, MP, B > &rhs) const |
bool | operator<= (const champ_iterator< T, Hash, Eq, MP, B > &rhs) const |
bool | operator> (const champ_iterator< T, Hash, Eq, MP, B > &rhs) const |
bool | operator>= (const champ_iterator< T, Hash, Eq, MP, B > &rhs) const |
Private Member Functions | |
void | increment () |
bool | step_down () |
bool | step_right () |
void | ensure_valid_ () |
bool | equal (const champ_iterator &other) const |
const T & | dereference () const |
Private Attributes | |
friend | iterator_core_access |
T * | cur_ |
T * | end_ |
count_t | depth_ |
node_t *const * | path_ [max_depth< B >+1] |
Additional Inherited Members | |
Protected Types inherited from immer::detail::iterator_facade< champ_iterator< T, Hash, Eq, MP, B >, std::forward_iterator_tag, T, const T &, std::ptrdiff_t, const T *> | |
using | access_t = iterator_core_access |
Protected Member Functions inherited from immer::detail::iterator_facade< champ_iterator< T, Hash, Eq, MP, B >, std::forward_iterator_tag, T, const T &, std::ptrdiff_t, const T *> | |
const champ_iterator< T, Hash, Eq, MP, B > & | derived () const |
champ_iterator< T, Hash, Eq, MP, B > & | derived () |
Static Protected Attributes inherited from immer::detail::iterator_facade< champ_iterator< T, Hash, Eq, MP, B >, std::forward_iterator_tag, T, const T &, std::ptrdiff_t, const T *> | |
static constexpr auto | is_random_access |
static constexpr auto | is_bidirectional |
Detailed Description
template<typename T, typename Hash, typename Eq, typename MP, bits_t B>
struct immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >
Definition at line 19 of file champ_iterator.hpp.
Member Typedef Documentation
◆ node_t
using immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::node_t = typename tree_t::node_t |
Definition at line 28 of file champ_iterator.hpp.
◆ tree_t
using immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::tree_t = champ<T, Hash, Eq, MP, B> |
Definition at line 27 of file champ_iterator.hpp.
Constructor & Destructor Documentation
◆ champ_iterator() [1/4]
|
default |
◆ champ_iterator() [2/4]
|
inline |
Definition at line 34 of file champ_iterator.hpp.
◆ champ_iterator() [3/4]
|
inline |
Definition at line 47 of file champ_iterator.hpp.
◆ champ_iterator() [4/4]
|
inline |
Definition at line 55 of file champ_iterator.hpp.
References immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::cur_.
Member Function Documentation
◆ dereference()
|
inlineprivate |
Definition at line 145 of file champ_iterator.hpp.
References immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::cur_.
◆ ensure_valid_()
|
inlineprivate |
Definition at line 125 of file champ_iterator.hpp.
References immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::cur_, immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::depth_, immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::end_, immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::step_down(), and immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::step_right().
Referenced by immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::increment().
◆ equal()
|
inlineprivate |
Definition at line 140 of file champ_iterator.hpp.
References immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::cur_.
◆ increment()
|
inlineprivate |
Definition at line 71 of file champ_iterator.hpp.
References immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::cur_, and immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::ensure_valid_().
◆ step_down()
|
inlineprivate |
Definition at line 77 of file champ_iterator.hpp.
References immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::cur_, immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::depth_, immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::end_, immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::path_, and immer::detail::hamts::popcount().
Referenced by immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::ensure_valid_().
◆ step_right()
|
inlineprivate |
Definition at line 100 of file champ_iterator.hpp.
References immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::cur_, immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::depth_, immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::end_, immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::path_, and immer::detail::hamts::popcount().
Referenced by immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::ensure_valid_().
Member Data Documentation
◆ cur_
|
private |
Definition at line 66 of file champ_iterator.hpp.
Referenced by immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::champ_iterator(), immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::dereference(), immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::ensure_valid_(), immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::equal(), immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::increment(), immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::step_down(), and immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::step_right().
◆ depth_
|
private |
◆ end_
|
private |
◆ iterator_core_access
|
private |
Definition at line 64 of file champ_iterator.hpp.
◆ path_
|
private |
Definition at line 69 of file champ_iterator.hpp.
Referenced by immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::step_down(), and immer::detail::hamts::champ_iterator< T, Hash, Eq, MP, B >::step_right().
The documentation for this struct was generated from the following file:
- src/immer/detail/hamts/champ_iterator.hpp