26 #include "../iterator.h"
30 template <
typename,
typename >
34 template <
typename T,
typename Iterator >
35 struct std::iterator_traits<
emlabcpp::iterators::convert_iterator< T, Iterator > >
47 template <
typename T,
typename Iterator >
56 : iter_( std::move( iter ) )
62 return static_cast< T
>( *iter_ );
67 return static_cast< T
>( *iter_ );
72 std::advance( iter_, offset );
78 std::advance( iter_, -offset );
84 return iter_ <=> other.iter_;
89 return iter_ == other.iter_;
94 return iter_ - other.iter_;
auto operator<=>(convert_iterator const &other) const
Definition: convert.h:82
T operator*()
Definition: convert.h:60
bool operator==(convert_iterator const &other) const
Definition: convert.h:87
T operator*() const
Definition: convert.h:65
convert_iterator(Iterator iter)
Definition: convert.h:55
convert_iterator & operator+=(std::ptrdiff_t offset)
Definition: convert.h:70
convert_iterator()=default
std::ptrdiff_t operator-(convert_iterator const &other)
Definition: convert.h:92
convert_iterator & operator-=(std::ptrdiff_t offset)
Definition: convert.h:76
MIT License.
Definition: convert.h:29
std::variant< int64_t, float, bool, string_buffer > value_type
Definition: base.h:51
MIT License.
Definition: impl.h:31
generic_iterator simplifies custom iterator implementation using CRTP.
Definition: iterator.h:62
value_type const_pointer
Definition: convert.h:40
value_type pointer
Definition: convert.h:39
value_type reference
Definition: convert.h:41
T value_type
Definition: convert.h:37
std::ptrdiff_t difference_type
Definition: convert.h:38
std::random_access_iterator_tag iterator_category
Definition: convert.h:42