15 #ifndef BORNAGAIN_CORE_INTENSITY_OUTPUTDATAITERATOR_H
16 #define BORNAGAIN_CORE_INTENSITY_OUTPUTDATAITERATOR_H
35 template <
class TValue2,
class TContainer2>
42 template <
class TValue2,
class TContainer2>
90 template <
class TValue,
class TContainer>
98 template <
class TValue1,
class TContainer1,
class TValue2,
class TContainer2>
103 template <
class TValue1,
class TContainer1,
class TValue2,
class TContainer2>
107 template <
class TValue,
class TContainer>
112 template <
class TValue,
class TContainer>
114 size_t start_at_index)
115 : m_current_index(start_at_index), mp_output_data(p_output_data)
119 template <
class TValue,
class TContainer>
120 template <
class TValue2,
class TContainer2>
123 : m_current_index(0), mp_output_data(0)
129 template <
class TValue,
class TContainer>
132 : m_current_index(0), mp_output_data(0)
138 template <
class TValue,
class TContainer>
139 template <
class TValue2,
class TContainer2>
148 template <
class TValue,
class TContainer>
157 template <
class TValue,
class TContainer>
162 template <
class TValue,
class TContainer>
165 if (m_current_index < mp_output_data->getAllocatedSize()) {
171 template <
class TValue,
class TContainer>
179 template <
class TValue,
class TContainer>
182 return (*mp_output_data)[m_current_index];
185 template <
class TValue,
class TContainer>
188 return &((*mp_output_data)[m_current_index]);
191 template <
class TValue,
class TContainer>
199 template <
class TValue1,
class TContainer1,
class TValue2,
class TContainer2>
207 template <
class TValue1,
class TContainer1,
class TValue2,
class TContainer2>
211 return !(left == right);
void swap(OutputDataIterator< TValue, TContainer > &left, OutputDataIterator< TValue, TContainer > &right)
make Swappable
bool operator!=(const BasicVector3D< T > &a, const BasicVector3D< T > &b)
Comparison of two vectors for inequality.
bool operator==(const BasicVector3D< T > &a, const BasicVector3D< T > &b)
Comparison of two vectors for equality.
Iterator for underlying OutputData container.
OutputDataIterator< TValue, TContainer > & operator=(const OutputDataIterator< TValue2, TContainer2 > &right)
templated copy assignment
OutputDataIterator< TValue, TContainer > & operator++()
prefix increment
void swap(OutputDataIterator< TValue, TContainer > &other)
Swaps iterators.
size_t getIndex() const
Returns current index.
TContainer * getContainer() const
Returns container pointer.
TValue * operator->() const
pointer access
TContainer * mp_output_data
std::forward_iterator_tag iterator_category
OutputDataIterator()
Empty constructor to comply with stl forward iterators.
ptrdiff_t difference_type
TValue & operator*() const
retrieve current element