VCCC  2024.05
VisualCamp Common C++ library
zip_view< Views >::iterator< Const > Class Template Reference

#include </home/jarvis/actions-runner/jarvis-vccc-2/_work/vccc/vccc/include/vccc/__ranges/views/zip_view.hpp>

+ Inheritance diagram for zip_view< Views >::iterator< Const >:

Public Types

using iterator_concept = std::conditional_t< all_random_access::value, random_access_iterator_tag, std::conditional_t< all_bidirectional::value, bidirectional_iterator_tag, std::conditional_t< all_forward::value, forward_iterator_tag, input_iterator_tag > >>
 
using value_type = std::tuple< maybe_const< Const, Views >... >
 
using difference_type = common_type_t< range_difference_t< maybe_const< Const, Views > >... >
 
using pointer = void
 
using reference = decltype(vccc::tuple_transform(std::declval< std::tuple< iterator_t< maybe_const< Const, Views > >... > & >(), std::declval< tuple_deref_fn >()))
 

Public Member Functions

 iterator ()=default
 
template<bool AntiConst, std::enable_if_t< conjunction< bool_constant<((Const !=AntiConst) &&Const)>, convertible_to< iterator_t< Views >, iterator_t< maybe_const< Const, Views >>>... >::value, int > = 0>
constexpr iterator (iterator< AntiConst > i)
 
constexpr decltype(auto) operator* () const
 
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, all_random_access >::value, int > = 0>
constexpr decltype(auto) operator[] (difference_type n) const
 
constexpr iteratoroperator++ ()
 
template<typename AF = all_forward, std::enable_if_t<!AF::value, int > = 0>
constexpr void operator++ (int)
 
template<typename AF = all_forward, std::enable_if_t< AF::value, int > = 0>
constexpr iterator operator++ (int)
 
template<typename AB = all_bidirectional, std::enable_if_t< AB::value, int > = 0>
constexpr iteratoroperator-- ()
 
template<typename AB = all_bidirectional, std::enable_if_t< AB::value, int > = 0>
constexpr iterator operator-- (int)
 
template<typename AR = all_random_access, std::enable_if_t< AR::value, int > = 0>
constexpr iteratoroperator+= (difference_type n)
 
template<typename AR = all_random_access, std::enable_if_t< AR::value, int > = 0>
constexpr iteratoroperator-= (difference_type n)
 

Friends

class iterator< true >
 
class sentinel< true >
 
class sentinel< false >
 
class zip_view
 
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, equality_comparable< iterator_t< maybe_const< Const, Views >>>... >::value, int > = 0>
constexpr friend bool operator== (const iterator &x, const iterator &y)
 
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, equality_comparable< iterator_t< maybe_const< Const, Views >>>... >::value, int > = 0>
constexpr friend bool operator!= (const iterator &x, const iterator &y)
 
template<typename AR = all_random_access, std::enable_if_t< AR::value, int > = 0>
constexpr friend bool operator< (const iterator &x, const iterator &y)
 
template<typename AR = all_random_access, std::enable_if_t< AR::value, int > = 0>
constexpr friend bool operator<= (const iterator &x, const iterator &y)
 
template<typename AR = all_random_access, std::enable_if_t< AR::value, int > = 0>
constexpr friend bool operator> (const iterator &x, const iterator &y)
 
template<typename AR = all_random_access, std::enable_if_t< AR::value, int > = 0>
constexpr friend bool operator>= (const iterator &x, const iterator &y)
 
template<typename AR = all_random_access, std::enable_if_t< AR::value, int > = 0>
constexpr friend iterator operator+ (const iterator &i, difference_type n)
 
template<typename AR = all_random_access, std::enable_if_t< AR::value, int > = 0>
constexpr friend iterator operator+ (difference_type n, const iterator &i)
 
template<typename AR = all_random_access, std::enable_if_t< AR::value, int > = 0>
constexpr friend iterator operator- (const iterator &i, difference_type n)
 
template<typename Dummy = void, std::enable_if_t< conjunction< std::is_void< Dummy >, sized_sentinel_for< iterator_t< maybe_const< Const, Views >>, iterator_t< maybe_const< Const, Views >>> ... >::value, int > = 0>
constexpr friend difference_type operator- (const iterator &i, const iterator &j)
 
constexpr friend auto iter_move (const iterator &i) noexcept(conjunction< bool_constant< noexcept(ranges::iter_move(std::declval< const iterator_t< maybe_const< Const, Views >> & >()))>..., std::is_nothrow_move_constructible< range_rvalue_reference_t< maybe_const< Const, Views >> >... >::value)
 
template<typename IS = conjunction< indirectly_swappable<iterator_t<maybe_const<Const, Views>>>...>, std::enable_if_t< IS::value, int > = 0>
constexpr friend void iter_swap (const iterator &x, const iterator &y) noexcept(conjunction< bool_constant< noexcept(ranges::iter_swap(std::declval< const iterator_t< maybe_const< Const, Views >> & >(), std::declval< const iterator_t< maybe_const< Const, Views >> & >()))>... >::value)
 

Member Typedef Documentation

◆ difference_type

◆ iterator_concept

using iterator_concept = std::conditional_t< all_random_access::value, random_access_iterator_tag, std::conditional_t< all_bidirectional::value, bidirectional_iterator_tag, std::conditional_t< all_forward::value, forward_iterator_tag, input_iterator_tag > >>

◆ pointer

using pointer = void

◆ reference

using reference = decltype(vccc::tuple_transform( std::declval<std::tuple<iterator_t<maybe_const<Const, Views> >...>&>(), std::declval<tuple_deref_fn>() ))

◆ value_type

using value_type = std::tuple<maybe_const<Const, Views>...>

Constructor & Destructor Documentation

◆ iterator() [1/2]

iterator ( )
default

◆ iterator() [2/2]

constexpr iterator ( iterator< AntiConst >  i)
inlineconstexpr

Member Function Documentation

◆ operator*()

constexpr decltype(auto) operator* ( ) const
inlineconstexpr

◆ operator++() [1/3]

constexpr iterator& operator++ ( )
inlineconstexpr

◆ operator++() [2/3]

constexpr void operator++ ( int  )
inlineconstexpr

◆ operator++() [3/3]

constexpr iterator operator++ ( int  )
inlineconstexpr

◆ operator+=()

constexpr iterator& operator+= ( difference_type  n)
inlineconstexpr

◆ operator--() [1/2]

constexpr iterator& operator-- ( )
inlineconstexpr

◆ operator--() [2/2]

constexpr iterator operator-- ( int  )
inlineconstexpr

◆ operator-=()

constexpr iterator& operator-= ( difference_type  n)
inlineconstexpr

◆ operator[]()

constexpr decltype(auto) operator[] ( difference_type  n) const
inlineconstexpr

Friends And Related Function Documentation

◆ iter_move

constexpr friend auto iter_move ( const iterator< Const > &  i)
friend

◆ iter_swap

constexpr friend void iter_swap ( const iterator< Const > &  x,
const iterator< Const > &  y 
)
friend

◆ iterator< true >

friend class iterator< true >
friend

◆ operator!=

constexpr friend bool operator!= ( const iterator< Const > &  x,
const iterator< Const > &  y 
)
friend

◆ operator+ [1/2]

constexpr friend iterator operator+ ( const iterator< Const > &  i,
difference_type  n 
)
friend

◆ operator+ [2/2]

constexpr friend iterator operator+ ( difference_type  n,
const iterator< Const > &  i 
)
friend

◆ operator- [1/2]

constexpr friend difference_type operator- ( const iterator< Const > &  i,
const iterator< Const > &  j 
)
friend

◆ operator- [2/2]

constexpr friend iterator operator- ( const iterator< Const > &  i,
difference_type  n 
)
friend

◆ operator<

constexpr friend bool operator< ( const iterator< Const > &  x,
const iterator< Const > &  y 
)
friend

◆ operator<=

constexpr friend bool operator<= ( const iterator< Const > &  x,
const iterator< Const > &  y 
)
friend

◆ operator==

constexpr friend bool operator== ( const iterator< Const > &  x,
const iterator< Const > &  y 
)
friend

◆ operator>

constexpr friend bool operator> ( const iterator< Const > &  x,
const iterator< Const > &  y 
)
friend

◆ operator>=

constexpr friend bool operator>= ( const iterator< Const > &  x,
const iterator< Const > &  y 
)
friend

◆ sentinel< false >

friend class sentinel< false >
friend

◆ sentinel< true >

friend class sentinel< true >
friend

◆ zip_view

friend class zip_view
friend

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