kblib 0.2.3
General utilities library for modern C++
kblib::enumerator_t< Range, void > Class Template Reference

#include <kblib/iterators.h>

Public Types

using range_t = typename std::remove_reference_t< Range >
 
using nested_iterator = decltype(r.begin())
 
using nested_end_iterator = decltype(r.end())
 
using iterator = enumerator_iterator< nested_iterator >
 
using end_iterator = enumerator_iterator< nested_end_iterator >
 
using nested_const_iterator = typename range_t::const_iterator
 
using const_iterator = enumerator_iterator< nested_const_iterator >
 

Public Member Functions

auto begin () const &noexcept(noexcept(r.cbegin())) -> const_iterator
 
auto begin () &noexcept(noexcept(r.begin())) -> iterator
 
auto end () const &noexcept(noexcept(r.cend())) -> const_iterator
 
auto end () &noexcept(noexcept(r.end())) -> end_iterator
 

Public Attributes

detail::no_dangle_t< Range > r
 

Detailed Description

template<typename Range>
class kblib::enumerator_t< Range, void >

Definition at line 928 of file iterators.h.

Member Typedef Documentation

◆ const_iterator

template<typename Range >
using kblib::enumerator_t< Range, void >::const_iterator = enumerator_iterator<nested_const_iterator>

Definition at line 939 of file iterators.h.

◆ end_iterator

template<typename Range >
using kblib::enumerator_t< Range, void >::end_iterator = enumerator_iterator<nested_end_iterator>

Definition at line 936 of file iterators.h.

◆ iterator

template<typename Range >
using kblib::enumerator_t< Range, void >::iterator = enumerator_iterator<nested_iterator>

Definition at line 935 of file iterators.h.

◆ nested_const_iterator

template<typename Range >
using kblib::enumerator_t< Range, void >::nested_const_iterator = typename range_t::const_iterator

Definition at line 938 of file iterators.h.

◆ nested_end_iterator

template<typename Range >
using kblib::enumerator_t< Range, void >::nested_end_iterator = decltype(r.end())

Definition at line 934 of file iterators.h.

◆ nested_iterator

template<typename Range >
using kblib::enumerator_t< Range, void >::nested_iterator = decltype(r.begin())

Definition at line 933 of file iterators.h.

◆ range_t

template<typename Range >
using kblib::enumerator_t< Range, void >::range_t = typename std::remove_reference_t<Range>

Definition at line 932 of file iterators.h.

Member Function Documentation

◆ begin() [1/2]

template<typename Range >
auto kblib::enumerator_t< Range, void >::begin ( ) & -> iterator
inlinenoexcept

Definition at line 944 of file iterators.h.

◆ begin() [2/2]

template<typename Range >
auto kblib::enumerator_t< Range, void >::begin ( ) const & -> const_iterator
inlinenoexcept

Definition at line 941 of file iterators.h.

◆ end() [1/2]

template<typename Range >
auto kblib::enumerator_t< Range, void >::end ( ) & -> end_iterator
inlinenoexcept

Definition at line 951 of file iterators.h.

◆ end() [2/2]

template<typename Range >
auto kblib::enumerator_t< Range, void >::end ( ) const & -> const_iterator
inlinenoexcept

Definition at line 948 of file iterators.h.

Member Data Documentation

◆ r

template<typename Range >
detail::no_dangle_t<Range> kblib::enumerator_t< Range, void >::r

Definition at line 930 of file iterators.h.


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