JPL Spatial
Sound spatialization and propagation library
Loading...
Searching...
No Matches
JPL::zip_iter< First, Second > Class Template Reference

#include <JPLSpatial/Containers/ZipIterator.h>

Public Types

using difference_type = std::ptrdiff_t
 
using value_type = std::pair< std::remove_cv_t< First >, std::remove_cv_t< Second > >
 
using reference = pair_ref< First, Second >
 
using pointer = arrow_proxy< First, Second >
 
using iterator_category = std::random_access_iterator_tag
 

Public Member Functions

constexpr zip_iter () noexcept
 
constexpr zip_iter (First *p1, Second *p2) noexcept
 
constexpr reference operator* () const noexcept
 
constexpr pointer operator-> () const noexcept
 
constexpr reference operator[] (difference_type n) const noexcept
 
constexpr zip_iteroperator++ () noexcept
 
constexpr zip_iter operator++ (int) noexcept
 
constexpr zip_iteroperator-- () noexcept
 
constexpr zip_iter operator-- (int) noexcept
 
constexpr zip_iteroperator+= (difference_type n) noexcept
 
constexpr zip_iteroperator-= (difference_type n) noexcept
 
template<class F2 , class S2 >
requires ( std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>> && std::is_convertible_v<F2*, First*>&& std::is_convertible_v<S2*, Second*>)
 zip_iter (const zip_iter< F2, S2 > &other) noexcept
 

Friends

template<class , class >
class zip_iter
 
zip_iter operator+ (zip_iter it, difference_type n) noexcept
 
zip_iter operator+ (difference_type n, zip_iter it) noexcept
 
zip_iter operator- (zip_iter it, difference_type n) noexcept
 
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
difference_type operator- (const zip_iter &a, const zip_iter< F2, S2 > &b) noexcept
 
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator== (const zip_iter &a, const zip_iter< F2, S2 > &b) noexcept
 
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator< (const zip_iter &a, const zip_iter< F2, S2 > &b) noexcept
 
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator!= (const zip_iter &a, const zip_iter< F2, S2 > &b) noexcept
 
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator<= (const zip_iter &a, const zip_iter< F2, S2 > &b) noexcept
 
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator> (const zip_iter &a, const zip_iter< F2, S2 > &b) noexcept
 
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator>= (const zip_iter &a, const zip_iter< F2, S2 > &b) noexcept
 

Member Typedef Documentation

◆ difference_type

template<class First , class Second >
using JPL::zip_iter< First, Second >::difference_type = std::ptrdiff_t

◆ iterator_category

template<class First , class Second >
using JPL::zip_iter< First, Second >::iterator_category = std::random_access_iterator_tag

◆ pointer

◆ reference

◆ value_type

template<class First , class Second >
using JPL::zip_iter< First, Second >::value_type = std::pair<std::remove_cv_t<First>, std::remove_cv_t<Second> >

Constructor & Destructor Documentation

◆ zip_iter() [1/3]

template<class First , class Second >
constexpr JPL::zip_iter< First, Second >::zip_iter ( )
inlineconstexprnoexcept

◆ zip_iter() [2/3]

template<class First , class Second >
constexpr JPL::zip_iter< First, Second >::zip_iter ( First p1,
Second p2 
)
inlineconstexprnoexcept

◆ zip_iter() [3/3]

template<class First , class Second >
template<class F2 , class S2 >
requires ( std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>> && std::is_convertible_v<F2*, First*>&& std::is_convertible_v<S2*, Second*>)
JPL::zip_iter< First, Second >::zip_iter ( const zip_iter< F2, S2 > &  other)
inlinenoexcept

Member Function Documentation

◆ operator*()

template<class First , class Second >
constexpr reference JPL::zip_iter< First, Second >::operator* ( ) const
inlineconstexprnoexcept

◆ operator++() [1/2]

template<class First , class Second >
constexpr zip_iter & JPL::zip_iter< First, Second >::operator++ ( )
inlineconstexprnoexcept

◆ operator++() [2/2]

template<class First , class Second >
constexpr zip_iter JPL::zip_iter< First, Second >::operator++ ( int  )
inlineconstexprnoexcept

◆ operator+=()

template<class First , class Second >
constexpr zip_iter & JPL::zip_iter< First, Second >::operator+= ( difference_type  n)
inlineconstexprnoexcept

◆ operator--() [1/2]

template<class First , class Second >
constexpr zip_iter & JPL::zip_iter< First, Second >::operator-- ( )
inlineconstexprnoexcept

◆ operator--() [2/2]

template<class First , class Second >
constexpr zip_iter JPL::zip_iter< First, Second >::operator-- ( int  )
inlineconstexprnoexcept

◆ operator-=()

template<class First , class Second >
constexpr zip_iter & JPL::zip_iter< First, Second >::operator-= ( difference_type  n)
inlineconstexprnoexcept

◆ operator->()

template<class First , class Second >
constexpr pointer JPL::zip_iter< First, Second >::operator-> ( ) const
inlineconstexprnoexcept

◆ operator[]()

template<class First , class Second >
constexpr reference JPL::zip_iter< First, Second >::operator[] ( difference_type  n) const
inlineconstexprnoexcept

Friends And Related Symbol Documentation

◆ operator!=

template<class First , class Second >
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator!= ( const zip_iter< First, Second > &  a,
const zip_iter< F2, S2 > &  b 
)
friend

◆ operator+ [1/2]

template<class First , class Second >
zip_iter operator+ ( difference_type  n,
zip_iter< First, Second it 
)
friend

◆ operator+ [2/2]

template<class First , class Second >
zip_iter operator+ ( zip_iter< First, Second it,
difference_type  n 
)
friend

◆ operator- [1/2]

template<class First , class Second >
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
difference_type operator- ( const zip_iter< First, Second > &  a,
const zip_iter< F2, S2 > &  b 
)
friend

◆ operator- [2/2]

template<class First , class Second >
zip_iter operator- ( zip_iter< First, Second it,
difference_type  n 
)
friend

◆ operator<

template<class First , class Second >
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator< ( const zip_iter< First, Second > &  a,
const zip_iter< F2, S2 > &  b 
)
friend

◆ operator<=

template<class First , class Second >
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator<= ( const zip_iter< First, Second > &  a,
const zip_iter< F2, S2 > &  b 
)
friend

◆ operator==

template<class First , class Second >
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator== ( const zip_iter< First, Second > &  a,
const zip_iter< F2, S2 > &  b 
)
friend

◆ operator>

template<class First , class Second >
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator> ( const zip_iter< First, Second > &  a,
const zip_iter< F2, S2 > &  b 
)
friend

◆ operator>=

template<class First , class Second >
template<class F2 , class S2 >
requires (std::is_same_v<std::remove_cv_t<F2>, std::remove_cv_t<First>> && std::is_same_v<std::remove_cv_t<S2>, std::remove_cv_t<Second>>)
bool operator>= ( const zip_iter< First, Second > &  a,
const zip_iter< F2, S2 > &  b 
)
friend

◆ zip_iter

template<class First , class Second >
template<class , class >
friend class zip_iter
friend

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