Template Class variant_iterator

Class Documentation

template<typename ...Iterators>
class variant_iterator

Public Types

using variant_type = std::variant<Iterators...>
using value_type = std::common_type_t<typename std::iterator_traits<Iterators>::value_type...>
using difference_type = std::common_type_t<typename std::iterator_traits<Iterators>::difference_type...>
using pointer = value_type*
using reference = value_type&
using iterator_category = std::input_iterator_tag

Public Functions

variant_iterator() = default
template<typename Iterator>
inline variant_iterator(Iterator iterator)
inline decltype(auto) operator*() const
inline decltype(auto) operator->() const
inline variant_iterator &operator++()
inline variant_iterator operator++(int)
inline variant_iterator &operator--()
inline variant_iterator operator--(int)

Friends

inline friend bool operator==(const variant_iterator &lhs, const variant_iterator &rhs)
inline friend bool operator!=(const variant_iterator &lhs, const variant_iterator &rhs)