fourdst::libcomposition v2.3.1
Robust atomic species information library
Loading...
Searching...
No Matches
fourdst::composition::detail::CompositionIterator< IsConst > Class Template Reference

#include <composition_abstract_iterator.h>

Collaboration diagram for fourdst::composition::detail::CompositionIterator< IsConst >:
[legend]

Classes

struct  ArrowProxy
 

Public Types

using iterator_category = std::random_access_iterator_tag
 
using difference_type = std::ptrdiff_t
 
using value_type = std::pair<const atomic::Species, double>
 
using SpeciesRef = const atomic::Species&
 
using AbundRef = std::conditional_t<IsConst, const double&, double&>
 
using reference = std::pair<SpeciesRef, AbundRef>
 
using pointer = ArrowProxy
 

Public Member Functions

 CompositionIterator ()=default
 
 CompositionIterator (SpecIt sIt, AbunIt aIt)
 
template<bool WasConst, typename = std::enable_if_t<IsConst && !WasConst>>
 CompositionIterator (const CompositionIterator< WasConst > &other)
 
SpecIt getSpeciesIt () const
 
AbunIt getAbundanceIt () const
 
reference operator* () const
 
ArrowProxy operator-> () const
 
reference operator[] (difference_type n) const
 
CompositionIteratoroperator++ ()
 
CompositionIterator operator++ (int)
 
CompositionIteratoroperator-- ()
 
CompositionIterator operator-- (int)
 
CompositionIteratoroperator+= (difference_type n)
 
CompositionIteratoroperator-= (difference_type n)
 
template<bool R>
bool operator== (const CompositionIterator< R > &other) const
 
template<bool R>
bool operator!= (const CompositionIterator< R > &other) const
 
template<bool R>
bool operator< (const CompositionIterator< R > &other) const
 
template<bool R>
bool operator> (const CompositionIterator< R > &other) const
 
template<bool R>
bool operator<= (const CompositionIterator< R > &other) const
 
template<bool R>
bool operator>= (const CompositionIterator< R > &other) const
 

Private Types

using SpecIt = std::vector<atomic::Species>::const_iterator
 
using AbunIt
 

Private Attributes

SpecIt m_sIt
 
AbunIt m_aIt
 

Friends

CompositionIterator operator+ (CompositionIterator it, difference_type n)
 
CompositionIterator operator+ (difference_type n, CompositionIterator it)
 
CompositionIterator operator- (CompositionIterator it, difference_type n)
 
difference_type operator- (const CompositionIterator &lhs, const CompositionIterator &rhs)
 

Detailed Description

template<bool IsConst>
class fourdst::composition::detail::CompositionIterator< IsConst >

Definition at line 13 of file composition_abstract_iterator.h.

Member Typedef Documentation

◆ AbundRef

template<bool IsConst>
using fourdst::composition::detail::CompositionIterator< IsConst >::AbundRef = std::conditional_t<IsConst, const double&, double&>

Definition at line 23 of file composition_abstract_iterator.h.

◆ AbunIt

template<bool IsConst>
using fourdst::composition::detail::CompositionIterator< IsConst >::AbunIt
private
Initial value:
std::conditional_t<IsConst,
std::vector<double>::const_iterator,
std::vector<double>::iterator>

Definition at line 35 of file composition_abstract_iterator.h.

◆ difference_type

template<bool IsConst>
using fourdst::composition::detail::CompositionIterator< IsConst >::difference_type = std::ptrdiff_t

Definition at line 16 of file composition_abstract_iterator.h.

◆ iterator_category

template<bool IsConst>
using fourdst::composition::detail::CompositionIterator< IsConst >::iterator_category = std::random_access_iterator_tag

Definition at line 15 of file composition_abstract_iterator.h.

◆ pointer

template<bool IsConst>
using fourdst::composition::detail::CompositionIterator< IsConst >::pointer = ArrowProxy

Definition at line 31 of file composition_abstract_iterator.h.

◆ reference

template<bool IsConst>
using fourdst::composition::detail::CompositionIterator< IsConst >::reference = std::pair<SpeciesRef, AbundRef>

Definition at line 24 of file composition_abstract_iterator.h.

◆ SpeciesRef

template<bool IsConst>
using fourdst::composition::detail::CompositionIterator< IsConst >::SpeciesRef = const atomic::Species&

Definition at line 22 of file composition_abstract_iterator.h.

◆ SpecIt

template<bool IsConst>
using fourdst::composition::detail::CompositionIterator< IsConst >::SpecIt = std::vector<atomic::Species>::const_iterator
private

Definition at line 34 of file composition_abstract_iterator.h.

◆ value_type

template<bool IsConst>
using fourdst::composition::detail::CompositionIterator< IsConst >::value_type = std::pair<const atomic::Species, double>

Definition at line 18 of file composition_abstract_iterator.h.

Constructor & Destructor Documentation

◆ CompositionIterator() [1/3]

template<bool IsConst>
fourdst::composition::detail::CompositionIterator< IsConst >::CompositionIterator ( )
default

◆ CompositionIterator() [2/3]

template<bool IsConst>
fourdst::composition::detail::CompositionIterator< IsConst >::CompositionIterator ( SpecIt sIt,
AbunIt aIt )
inline

Definition at line 44 of file composition_abstract_iterator.h.

◆ CompositionIterator() [3/3]

template<bool IsConst>
template<bool WasConst, typename = std::enable_if_t<IsConst && !WasConst>>
fourdst::composition::detail::CompositionIterator< IsConst >::CompositionIterator ( const CompositionIterator< WasConst > & other)
inline

Definition at line 47 of file composition_abstract_iterator.h.

Member Function Documentation

◆ getAbundanceIt()

template<bool IsConst>
AbunIt fourdst::composition::detail::CompositionIterator< IsConst >::getAbundanceIt ( ) const
inlinenodiscard

Definition at line 51 of file composition_abstract_iterator.h.

◆ getSpeciesIt()

template<bool IsConst>
SpecIt fourdst::composition::detail::CompositionIterator< IsConst >::getSpeciesIt ( ) const
inlinenodiscard

Definition at line 50 of file composition_abstract_iterator.h.

◆ operator!=()

template<bool IsConst>
template<bool R>
bool fourdst::composition::detail::CompositionIterator< IsConst >::operator!= ( const CompositionIterator< R > & other) const
inline

Definition at line 91 of file composition_abstract_iterator.h.

◆ operator*()

template<bool IsConst>
reference fourdst::composition::detail::CompositionIterator< IsConst >::operator* ( ) const
inline

Definition at line 53 of file composition_abstract_iterator.h.

◆ operator++() [1/2]

template<bool IsConst>
CompositionIterator & fourdst::composition::detail::CompositionIterator< IsConst >::operator++ ( )
inline

Definition at line 66 of file composition_abstract_iterator.h.

◆ operator++() [2/2]

template<bool IsConst>
CompositionIterator fourdst::composition::detail::CompositionIterator< IsConst >::operator++ ( int )
inline

Definition at line 67 of file composition_abstract_iterator.h.

◆ operator+=()

template<bool IsConst>
CompositionIterator & fourdst::composition::detail::CompositionIterator< IsConst >::operator+= ( difference_type n)
inline

Definition at line 72 of file composition_abstract_iterator.h.

◆ operator--() [1/2]

template<bool IsConst>
CompositionIterator & fourdst::composition::detail::CompositionIterator< IsConst >::operator-- ( )
inline

Definition at line 69 of file composition_abstract_iterator.h.

◆ operator--() [2/2]

template<bool IsConst>
CompositionIterator fourdst::composition::detail::CompositionIterator< IsConst >::operator-- ( int )
inline

Definition at line 70 of file composition_abstract_iterator.h.

◆ operator-=()

template<bool IsConst>
CompositionIterator & fourdst::composition::detail::CompositionIterator< IsConst >::operator-= ( difference_type n)
inline

Definition at line 73 of file composition_abstract_iterator.h.

◆ operator->()

template<bool IsConst>
ArrowProxy fourdst::composition::detail::CompositionIterator< IsConst >::operator-> ( ) const
inline

Definition at line 57 of file composition_abstract_iterator.h.

◆ operator<()

template<bool IsConst>
template<bool R>
bool fourdst::composition::detail::CompositionIterator< IsConst >::operator< ( const CompositionIterator< R > & other) const
inline

Definition at line 94 of file composition_abstract_iterator.h.

◆ operator<=()

template<bool IsConst>
template<bool R>
bool fourdst::composition::detail::CompositionIterator< IsConst >::operator<= ( const CompositionIterator< R > & other) const
inline

Definition at line 100 of file composition_abstract_iterator.h.

◆ operator==()

template<bool IsConst>
template<bool R>
bool fourdst::composition::detail::CompositionIterator< IsConst >::operator== ( const CompositionIterator< R > & other) const
inline

Definition at line 88 of file composition_abstract_iterator.h.

◆ operator>()

template<bool IsConst>
template<bool R>
bool fourdst::composition::detail::CompositionIterator< IsConst >::operator> ( const CompositionIterator< R > & other) const
inline

Definition at line 97 of file composition_abstract_iterator.h.

◆ operator>=()

template<bool IsConst>
template<bool R>
bool fourdst::composition::detail::CompositionIterator< IsConst >::operator>= ( const CompositionIterator< R > & other) const
inline

Definition at line 103 of file composition_abstract_iterator.h.

◆ operator[]()

template<bool IsConst>
reference fourdst::composition::detail::CompositionIterator< IsConst >::operator[] ( difference_type n) const
inline

Definition at line 61 of file composition_abstract_iterator.h.

Friends And Related Symbol Documentation

◆ operator+ [1/2]

template<bool IsConst>
CompositionIterator operator+ ( CompositionIterator< IsConst > it,
difference_type n )
friend

Definition at line 76 of file composition_abstract_iterator.h.

◆ operator+ [2/2]

template<bool IsConst>
CompositionIterator operator+ ( difference_type n,
CompositionIterator< IsConst > it )
friend

Definition at line 79 of file composition_abstract_iterator.h.

◆ operator- [1/2]

template<bool IsConst>
CompositionIterator operator- ( CompositionIterator< IsConst > it,
difference_type n )
friend

Definition at line 80 of file composition_abstract_iterator.h.

◆ operator- [2/2]

template<bool IsConst>
difference_type operator- ( const CompositionIterator< IsConst > & lhs,
const CompositionIterator< IsConst > & rhs )
friend

Definition at line 83 of file composition_abstract_iterator.h.

Member Data Documentation

◆ m_aIt

template<bool IsConst>
AbunIt fourdst::composition::detail::CompositionIterator< IsConst >::m_aIt
private

Definition at line 40 of file composition_abstract_iterator.h.

◆ m_sIt

template<bool IsConst>
SpecIt fourdst::composition::detail::CompositionIterator< IsConst >::m_sIt
private

Definition at line 39 of file composition_abstract_iterator.h.


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