IgANet
IgANets - Isogeometric Analysis Networks
Loading...
Searching...
No Matches
iganet::utils::detail::zip_helper< T >::iterator Class Reference

#include </home/runner/work/iganet/iganet/include/utils/zip.hpp>

Public Types

using difference_type = std::tuple< decltype(*std::declval< T >().begin())... >
 
using iterator_category = std::forward_iterator_tag
 
using pointer = std::tuple< decltype(*std::declval< T >().begin())... > *
 
using reference = std::tuple< decltype(*std::declval< T >().begin())... > &
 
using value_type = std::tuple< decltype(*std::declval< T >().begin())... >
 

Public Member Functions

 iterator (decltype(_iterators) iterators)
 
bool operator!= (const iterator &other) const
 
auto operator* () const
 
iteratoroperator++ ()
 
iterator operator++ (int)
 

Private Member Functions

template<std::size_t... I>
auto deref (std::index_sequence< I... >) const
 
template<std::size_t... I>
void increment (std::index_sequence< I... >)
 

Private Attributes

std::tuple< decltype(std::declval< T >().begin())... > _iterators
 

Member Typedef Documentation

◆ difference_type

template<typename... T>
using iganet::utils::detail::zip_helper< T >::iterator::difference_type = std::tuple<decltype(*std::declval<T>().begin())...>

◆ iterator_category

template<typename... T>
using iganet::utils::detail::zip_helper< T >::iterator::iterator_category = std::forward_iterator_tag

◆ pointer

template<typename... T>
using iganet::utils::detail::zip_helper< T >::iterator::pointer = std::tuple<decltype(*std::declval<T>().begin())...> *

◆ reference

template<typename... T>
using iganet::utils::detail::zip_helper< T >::iterator::reference = std::tuple<decltype(*std::declval<T>().begin())...> &

◆ value_type

template<typename... T>
using iganet::utils::detail::zip_helper< T >::iterator::value_type = std::tuple<decltype(*std::declval<T>().begin())...>

Constructor & Destructor Documentation

◆ iterator()

template<typename... T>
iganet::utils::detail::zip_helper< T >::iterator::iterator ( decltype(_iterators iterators)
inlineexplicit

Member Function Documentation

◆ deref()

template<typename... T>
template<std::size_t... I>
auto iganet::utils::detail::zip_helper< T >::iterator::deref ( std::index_sequence< I... >  ) const
inlineprivate

◆ increment()

template<typename... T>
template<std::size_t... I>
void iganet::utils::detail::zip_helper< T >::iterator::increment ( std::index_sequence< I... >  )
inlineprivate

◆ operator!=()

template<typename... T>
bool iganet::utils::detail::zip_helper< T >::iterator::operator!= ( const iterator other) const
inline

◆ operator*()

template<typename... T>
auto iganet::utils::detail::zip_helper< T >::iterator::operator* ( ) const
inline

◆ operator++() [1/2]

template<typename... T>
iterator & iganet::utils::detail::zip_helper< T >::iterator::operator++ ( )
inline

◆ operator++() [2/2]

template<typename... T>
iterator iganet::utils::detail::zip_helper< T >::iterator::operator++ ( int  )
inline

Member Data Documentation

◆ _iterators

template<typename... T>
std::tuple<decltype(std::declval<T>().begin())...> iganet::utils::detail::zip_helper< T >::iterator::_iterators
private

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