The Gaudi Framework  v41r0 (bdbe7744)
Loading...
Searching...
No Matches
Gaudi::Functional::details::details2::indirect_iterator< Iterator > Class Template Reference

#include </builds/gaudi/Gaudi/GaudiFunctional/include/Gaudi/Functional/details.h>

Public Types

using iterator_category = typename traits::iterator_category
using difference_type = typename traits::difference_type
using reference = decltype( **m_iter )
using value_type = std::remove_reference_t<reference>
using pointer = std::add_pointer_t<value_type>

Public Member Functions

 indirect_iterator ()=default
constexpr indirect_iterator (Iterator i)
constexpr reference operator* () const
constexpr bool operator== (const indirect_iterator &rhs) const
constexpr indirect_iterator & operator++ ()
constexpr indirect_iterator operator++ (int)
constexpr indirect_iterator & operator-- ()
constexpr indirect_iterator operator-- (int)
constexpr indirect_iterator & operator+= (difference_type n)
constexpr indirect_iterator operator+ (difference_type n) const
constexpr indirect_iterator & operator-= (difference_type n)
constexpr indirect_iterator operator- (difference_type n) const
constexpr difference_type operator- (const indirect_iterator &other) const
constexpr reference operator[] (difference_type n) const

Private Types

using traits = std::iterator_traits<Iterator>

Private Attributes

Iterator m_iter

Detailed Description

template<typename Iterator>
class Gaudi::Functional::details::details2::indirect_iterator< Iterator >

Definition at line 221 of file details.h.

Member Typedef Documentation

◆ difference_type

template<typename Iterator>
using Gaudi::Functional::details::details2::indirect_iterator< Iterator >::difference_type = typename traits::difference_type

◆ iterator_category

template<typename Iterator>
using Gaudi::Functional::details::details2::indirect_iterator< Iterator >::iterator_category = typename traits::iterator_category

◆ pointer

template<typename Iterator>
using Gaudi::Functional::details::details2::indirect_iterator< Iterator >::pointer = std::add_pointer_t<value_type>

◆ reference

template<typename Iterator>
using Gaudi::Functional::details::details2::indirect_iterator< Iterator >::reference = decltype( **m_iter )

Definition at line 228 of file details.h.

◆ traits

template<typename Iterator>
using Gaudi::Functional::details::details2::indirect_iterator< Iterator >::traits = std::iterator_traits<Iterator>
private

Definition at line 222 of file details.h.

◆ value_type

template<typename Iterator>
using Gaudi::Functional::details::details2::indirect_iterator< Iterator >::value_type = std::remove_reference_t<reference>

Constructor & Destructor Documentation

◆ indirect_iterator() [1/2]

template<typename Iterator>
Gaudi::Functional::details::details2::indirect_iterator< Iterator >::indirect_iterator ( )
default

◆ indirect_iterator() [2/2]

Member Function Documentation

◆ operator*()

template<typename Iterator>
reference Gaudi::Functional::details::details2::indirect_iterator< Iterator >::operator* ( ) const
inlineconstexpr

Definition at line 235 of file details.h.

235{ return **m_iter; }

◆ operator+()

Definition at line 271 of file details.h.

273 {
274 auto i = *this;
275 return i += n;
276 }

◆ operator++() [1/2]

template<typename Iterator>
indirect_iterator & Gaudi::Functional::details::details2::indirect_iterator< Iterator >::operator++ ( )
inlineconstexpr

Definition at line 239 of file details.h.

239 {
240 ++m_iter;
241 return *this;
242 }

◆ operator++() [2/2]

template<typename Iterator>
indirect_iterator Gaudi::Functional::details::details2::indirect_iterator< Iterator >::operator++ ( int )
inlineconstexpr

Definition at line 243 of file details.h.

243 {
244 auto i = *this;
245 ++*this;
246 return i;
247 }

◆ operator+=()

Definition at line 265 of file details.h.

267 {
268 m_iter += n;
269 return *this;
270 }

◆ operator-() [1/2]

template<typename Iterator>
difference_type Gaudi::Functional::details::details2::indirect_iterator< Iterator >::operator- ( const indirect_iterator< Iterator > & other) const
inlineconstexpr

Definition at line 289 of file details.h.

291 {
292 return m_iter - other.m_iter;
293 }

◆ operator-() [2/2]

Definition at line 283 of file details.h.

285 {
286 auto i = *this;
287 return i -= n;
288 }

◆ operator--() [1/2]

template<typename Iterator>
indirect_iterator & Gaudi::Functional::details::details2::indirect_iterator< Iterator >::operator-- ( )
inlineconstexpr

Definition at line 250 of file details.h.

252 {
253 --m_iter;
254 return *this;
255 }

◆ operator--() [2/2]

template<typename Iterator>
indirect_iterator Gaudi::Functional::details::details2::indirect_iterator< Iterator >::operator-- ( int )
inlineconstexpr

Definition at line 256 of file details.h.

258 {
259 auto i = *this;
260 --*this;
261 return i;
262 }

◆ operator-=()

Definition at line 277 of file details.h.

279 {
280 m_iter -= n;
281 return *this;
282 }

◆ operator==()

template<typename Iterator>
bool Gaudi::Functional::details::details2::indirect_iterator< Iterator >::operator== ( const indirect_iterator< Iterator > & rhs) const
inlineconstexpr

Definition at line 237 of file details.h.

237{ return m_iter == rhs.m_iter; }

◆ operator[]()

template<typename Iterator>
reference Gaudi::Functional::details::details2::indirect_iterator< Iterator >::operator[] ( difference_type n) const
inlineconstexpr

Definition at line 294 of file details.h.

296 {
297 return **( m_iter + n );
298 }

Member Data Documentation

◆ m_iter

Definition at line 223 of file details.h.


The documentation for this class was generated from the following file:
  • GaudiFunctional/include/Gaudi/Functional/details.h