ATLAS Offline Software
Loading...
Searching...
No Matches
FPGATrackSimBinArray< T >::ConstIterator Struct Reference

#include <FPGATrackSimBinArray.h>

Inheritance diagram for FPGATrackSimBinArray< T >::ConstIterator:
Collaboration diagram for FPGATrackSimBinArray< T >::ConstIterator:

Public Types

using value_type = FPGATrackSimBinArray<T>::ConstIterator
using iterator_category = std::forward_iterator_tag
using container_type = const FPGATrackSimBinArray<T>
using difference_type = void
using pointer = FPGATrackSimBinArray<T>::ConstIterator*
using reference = FPGATrackSimBinArray<T>::ConstIterator &

Public Member Functions

 ConstIterator (const std::vector< unsigned int > &idx, const FPGATrackSimBinArray< T > &itrdata)
ConstIteratoroperator* ()
ConstIteratoroperator-> ()
ConstIteratoroperator++ ()
const std::vector< unsigned int > & idx () const
const T & data ()
ConstIterator operator++ (int)

Private Attributes

std::vector< unsigned int > m_idx
const FPGATrackSimBinArray< T > & m_itrdata

Friends

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

Detailed Description

template<typename T>
struct FPGATrackSimBinArray< T >::ConstIterator

Definition at line 136 of file FPGATrackSimBinArray.h.

Member Typedef Documentation

◆ container_type

template<typename T>
using FPGATrackSimBinArray< T >::ConstIterator::container_type = const FPGATrackSimBinArray<T>

Definition at line 140 of file FPGATrackSimBinArray.h.

◆ difference_type

template<typename T>
using FPGATrackSimBinArray< T >::ConstIterator::difference_type = void

Definition at line 141 of file FPGATrackSimBinArray.h.

◆ iterator_category

template<typename T>
using FPGATrackSimBinArray< T >::ConstIterator::iterator_category = std::forward_iterator_tag

Definition at line 139 of file FPGATrackSimBinArray.h.

◆ pointer

template<typename T>
using FPGATrackSimBinArray< T >::ConstIterator::pointer = FPGATrackSimBinArray<T>::ConstIterator*

Definition at line 142 of file FPGATrackSimBinArray.h.

◆ reference

template<typename T>
using FPGATrackSimBinArray< T >::ConstIterator::reference = FPGATrackSimBinArray<T>::ConstIterator &

Definition at line 143 of file FPGATrackSimBinArray.h.

◆ value_type

template<typename T>
using FPGATrackSimBinArray< T >::ConstIterator::value_type = FPGATrackSimBinArray<T>::ConstIterator

Definition at line 138 of file FPGATrackSimBinArray.h.

Constructor & Destructor Documentation

◆ ConstIterator()

template<typename T>
FPGATrackSimBinArray< T >::ConstIterator::ConstIterator ( const std::vector< unsigned int > & idx,
const FPGATrackSimBinArray< T > & itrdata )
inline

Definition at line 146 of file FPGATrackSimBinArray.h.

149 if (m_idx.size() != m_itrdata.dims().size()) {
150 throw std::runtime_error(
151 "FPGATrackSimBinArray::Interator array size mismatch in "
152 "constructor");
153 }
154 }
const std::vector< unsigned int > & idx() const
const FPGATrackSimBinArray< T > & m_itrdata

Member Function Documentation

◆ data()

template<typename T>
const T & FPGATrackSimBinArray< T >::ConstIterator::data ( )
inline

Definition at line 175 of file FPGATrackSimBinArray.h.

175{ return m_itrdata[m_idx]; }

◆ idx()

template<typename T>
const std::vector< unsigned int > & FPGATrackSimBinArray< T >::ConstIterator::idx ( ) const
inline

Definition at line 174 of file FPGATrackSimBinArray.h.

174{ return m_idx; }

◆ operator*()

template<typename T>
ConstIterator & FPGATrackSimBinArray< T >::ConstIterator::operator* ( )
inline

Definition at line 156 of file FPGATrackSimBinArray.h.

156{ return *this; }

◆ operator++() [1/2]

template<typename T>
ConstIterator & FPGATrackSimBinArray< T >::ConstIterator::operator++ ( )
inline

Definition at line 160 of file FPGATrackSimBinArray.h.

161 {
162 ++m_idx.at(0);
163 for (unsigned int i = 0; i < m_idx.size() - 1; i++)
164 {
165 if (m_idx.at(i) >= m_itrdata.dims().at(i))
166 {
167 ++m_idx.at(i + 1);
168 m_idx.at(i) = 0;
169 }
170 }
171 return *this;
172 }

◆ operator++() [2/2]

template<typename T>
ConstIterator FPGATrackSimBinArray< T >::ConstIterator::operator++ ( int )
inline

Definition at line 178 of file FPGATrackSimBinArray.h.

179 {
180 ConstIterator tmp = *this;
181 ++(*this);
182 return tmp;
183 }
ConstIterator(const std::vector< unsigned int > &idx, const FPGATrackSimBinArray< T > &itrdata)

◆ operator->()

template<typename T>
ConstIterator * FPGATrackSimBinArray< T >::ConstIterator::operator-> ( )
inline

Definition at line 157 of file FPGATrackSimBinArray.h.

157{ return this; }

◆ operator!=

template<typename T>
bool operator!= ( const ConstIterator & a,
const ConstIterator & b )
friend

Definition at line 186 of file FPGATrackSimBinArray.h.

187 {
188 return a.m_idx != b.m_idx;
189 };

◆ operator==

template<typename T>
bool operator== ( const ConstIterator & a,
const ConstIterator & b )
friend

Definition at line 185 of file FPGATrackSimBinArray.h.

185{ return a.m_idx == b.m_idx; };

Member Data Documentation

◆ m_idx

template<typename T>
std::vector<unsigned int> FPGATrackSimBinArray< T >::ConstIterator::m_idx
private

Definition at line 193 of file FPGATrackSimBinArray.h.

◆ m_itrdata

template<typename T>
const FPGATrackSimBinArray<T>& FPGATrackSimBinArray< T >::ConstIterator::m_itrdata
private

Definition at line 196 of file FPGATrackSimBinArray.h.


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