16 #error no need to expose this header to Swig
20 #ifndef BORNAGAIN_DEVICE_DATA_OUTPUTDATAITERATOR_H
21 #define BORNAGAIN_DEVICE_DATA_OUTPUTDATAITERATOR_H
39 template <
class TValue2,
class TContainer2>
46 template <
class TValue2,
class TContainer2>
94 template <
class TValue,
class TContainer>
102 template <
class TValue1,
class TContainer1,
class TValue2,
class TContainer2>
107 template <
class TValue1,
class TContainer1,
class TValue2,
class TContainer2>
111 template <
class TValue,
class TContainer>
116 template <
class TValue,
class TContainer>
118 size_t start_at_index)
119 : m_current_index(start_at_index), m_output_data(p_output_data)
123 template <
class TValue,
class TContainer>
124 template <
class TValue2,
class TContainer2>
127 : m_current_index(0), m_output_data(0)
133 template <
class TValue,
class TContainer>
136 : m_current_index(0), m_output_data(0)
142 template <
class TValue,
class TContainer>
143 template <
class TValue2,
class TContainer2>
152 template <
class TValue,
class TContainer>
161 template <
class TValue,
class TContainer>
166 template <
class TValue,
class TContainer>
169 if (m_current_index < m_output_data->getAllocatedSize()) {
175 template <
class TValue,
class TContainer>
183 template <
class TValue,
class TContainer>
186 return (*m_output_data)[m_current_index];
189 template <
class TValue,
class TContainer>
192 return &((*m_output_data)[m_current_index]);
195 template <
class TValue,
class TContainer>
203 template <
class TValue1,
class TContainer1,
class TValue2,
class TContainer2>
211 template <
class TValue1,
class TContainer1,
class TValue2,
class TContainer2>
215 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
TContainer * m_output_data
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
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