iterative-solver 0.0
molpro::linalg::array::util::BufferManager< T >::Iterator Struct Reference

Custom iterator for the BufferManager. This iterator is responsible for loading data into the buffers and providing access to that data. More...

#include <BufferManager.h>

Detailed Description

template<class T>
struct molpro::linalg::array::util::BufferManager< T >::Iterator

Custom iterator for the BufferManager. This iterator is responsible for loading data into the buffers and providing access to that data.

Public Types

using iterator_category = std::forward_iterator_tag
 
using difference_type = std::ptrdiff_t
 
using value_type = Span< typename T::value_type >
 
using pointer = Span< typename T::value_type > *
 
using reference = const Span< typename T::value_type > &
 

Public Member Functions

 Iterator (BufferManager &manager, bool begin=false, bool end=false)
 Construct a new Iterator object. More...
 
reference operator* () const
 
pointer operator-> ()
 
Iteratoroperator++ ()
 
Iterator operator++ (int)
 

Friends

bool operator== (const Iterator &a, const Iterator &b)
 
bool operator!= (const Iterator &a, const Iterator &b)
 

Member Typedef Documentation

◆ difference_type

template<class T >
using molpro::linalg::array::util::BufferManager< T >::Iterator::difference_type = std::ptrdiff_t

◆ iterator_category

template<class T >
using molpro::linalg::array::util::BufferManager< T >::Iterator::iterator_category = std::forward_iterator_tag

◆ pointer

template<class T >
using molpro::linalg::array::util::BufferManager< T >::Iterator::pointer = Span<typename T::value_type>*

◆ reference

template<class T >
using molpro::linalg::array::util::BufferManager< T >::Iterator::reference = const Span<typename T::value_type>&

◆ value_type

template<class T >
using molpro::linalg::array::util::BufferManager< T >::Iterator::value_type = Span<typename T::value_type>

Constructor & Destructor Documentation

◆ Iterator()

template<class T >
molpro::linalg::array::util::BufferManager< T >::Iterator::Iterator ( BufferManager manager,
bool  begin = false,
bool  end = false 
)
inline

Construct a new Iterator object.

Parameters
managerBufferManager object
beginset this->m_value to the start of the iteration
endset this->m_value to the end of the iteration

Member Function Documentation

◆ operator*()

template<class T >
reference molpro::linalg::array::util::BufferManager< T >::Iterator::operator* ( ) const
inline

◆ operator++() [1/2]

template<class T >
Iterator & molpro::linalg::array::util::BufferManager< T >::Iterator::operator++ ( )
inline

◆ operator++() [2/2]

template<class T >
Iterator molpro::linalg::array::util::BufferManager< T >::Iterator::operator++ ( int  )
inline

◆ operator->()

template<class T >
pointer molpro::linalg::array::util::BufferManager< T >::Iterator::operator-> ( )
inline

Friends And Related Function Documentation

◆ operator!=

template<class T >
bool operator!= ( const Iterator a,
const Iterator b 
)
friend

◆ operator==

template<class T >
bool operator== ( const Iterator a,
const Iterator b 
)
friend