kblib 0.2.3
General utilities library for modern C++
kblib::zip_iterator< InputIt1, EndIt, InputIt2 > Struct Template Reference

#include <kblib/iterators.h>

Public Member Functions

auto operator++ () noexcept(noexcept(++pos1) and noexcept(++pos2)) -> zip_iterator &
 
auto operator++ (int) noexcept(is_nothrow_copyable and noexcept(++pos1) and noexcept(++pos2)) -> const zip_iterator
 
auto operator* () const noexcept -> auto
 
auto begin () const noexcept(is_nothrow_copyable) -> zip_iterator
 
auto end () const noexcept(std::is_nothrow_copy_constructible< EndIt >::value and std::is_nothrow_copy_constructible< InputIt2 >::value) -> zip_iterator< EndIt, EndIt, InputIt2 >
 

Public Attributes

InputIt1 pos1 {}
 
EndIt end1 {}
 
InputIt2 pos2 {}
 

Static Public Attributes

static constexpr bool is_nothrow_copyable
 

Friends

auto operator== (const zip_iterator &z1, const zip_iterator &z2) noexcept(noexcept(z1.pos1==z2.pos1)) -> bool
 
auto operator!= (const zip_iterator &z1, const zip_iterator &z2) noexcept(noexcept(z1.pos1 !=z2.pos1)) -> bool
 
auto operator== (const zip_iterator &z1, zip_iterator< EndIt, EndIt, InputIt2 > end) noexcept(noexcept(z1.pos1==end.val)) -> bool
 
auto operator!= (const zip_iterator &z1, zip_iterator< EndIt, EndIt, InputIt2 > end) noexcept(noexcept(z1.pos1==end.val)) -> bool
 

Detailed Description

template<typename InputIt1, typename EndIt, typename InputIt2>
struct kblib::zip_iterator< InputIt1, EndIt, InputIt2 >

Definition at line 1328 of file iterators.h.

Member Function Documentation

◆ begin()

template<typename InputIt1 , typename EndIt , typename InputIt2 >
auto kblib::zip_iterator< InputIt1, EndIt, InputIt2 >::begin ( ) const -> zip_iterator
inlinenoexcept

Definition at line 1356 of file iterators.h.

◆ end()

template<typename InputIt1 , typename EndIt , typename InputIt2 >
auto kblib::zip_iterator< InputIt1, EndIt, InputIt2 >::end ( ) const -> zip_iterator<EndIt, EndIt, InputIt2>
inlinenoexcept

Definition at line 1360 of file iterators.h.

◆ operator*()

template<typename InputIt1 , typename EndIt , typename InputIt2 >
auto kblib::zip_iterator< InputIt1, EndIt, InputIt2 >::operator* ( ) const -> auto
inlinenoexcept

Definition at line 1352 of file iterators.h.

◆ operator++() [1/2]

template<typename InputIt1 , typename EndIt , typename InputIt2 >
auto kblib::zip_iterator< InputIt1, EndIt, InputIt2 >::operator++ ( ) -> zip_iterator&
inlinenoexcept

Definition at line 1338 of file iterators.h.

◆ operator++() [2/2]

template<typename InputIt1 , typename EndIt , typename InputIt2 >
auto kblib::zip_iterator< InputIt1, EndIt, InputIt2 >::operator++ ( int  ) -> const zip_iterator
inlinenoexcept

Definition at line 1344 of file iterators.h.

Friends And Related Function Documentation

◆ operator!= [1/2]

template<typename InputIt1 , typename EndIt , typename InputIt2 >
auto operator!= ( const zip_iterator< InputIt1, EndIt, InputIt2 > &  z1,
const zip_iterator< InputIt1, EndIt, InputIt2 > &  z2 
) -> bool
friend

Definition at line 1372 of file iterators.h.

◆ operator!= [2/2]

template<typename InputIt1 , typename EndIt , typename InputIt2 >
auto operator!= ( const zip_iterator< InputIt1, EndIt, InputIt2 > &  z1,
zip_iterator< EndIt, EndIt, InputIt2 >  end 
) -> bool
friend

Definition at line 1384 of file iterators.h.

◆ operator== [1/2]

template<typename InputIt1 , typename EndIt , typename InputIt2 >
auto operator== ( const zip_iterator< InputIt1, EndIt, InputIt2 > &  z1,
const zip_iterator< InputIt1, EndIt, InputIt2 > &  z2 
) -> bool
friend

Definition at line 1367 of file iterators.h.

◆ operator== [2/2]

template<typename InputIt1 , typename EndIt , typename InputIt2 >
auto operator== ( const zip_iterator< InputIt1, EndIt, InputIt2 > &  z1,
zip_iterator< EndIt, EndIt, InputIt2 >  end 
) -> bool
friend

Definition at line 1377 of file iterators.h.

Member Data Documentation

◆ end1

template<typename InputIt1 , typename EndIt , typename InputIt2 >
EndIt kblib::zip_iterator< InputIt1, EndIt, InputIt2 >::end1 {}

Definition at line 1330 of file iterators.h.

◆ is_nothrow_copyable

template<typename InputIt1 , typename EndIt , typename InputIt2 >
constexpr bool kblib::zip_iterator< InputIt1, EndIt, InputIt2 >::is_nothrow_copyable
staticconstexpr
Initial value:
= std::is_nothrow_copy_constructible<InputIt1>::value
and std::is_nothrow_copy_constructible<EndIt>::value
and std::is_nothrow_copy_constructible<InputIt2>::value

Definition at line 1333 of file iterators.h.

◆ pos1

template<typename InputIt1 , typename EndIt , typename InputIt2 >
InputIt1 kblib::zip_iterator< InputIt1, EndIt, InputIt2 >::pos1 {}

Definition at line 1329 of file iterators.h.

◆ pos2

template<typename InputIt1 , typename EndIt , typename InputIt2 >
InputIt2 kblib::zip_iterator< InputIt1, EndIt, InputIt2 >::pos2 {}

Definition at line 1331 of file iterators.h.


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