The Gaudi Framework  v36r6 (b1ee9983)
Gaudi::Functional::details::vector_of_const_< Container >::iterator Class Reference

#include </builds/gaudi/Gaudi/GaudiAlg/include/GaudiAlg/FunctionalDetails.h>

Public Types

using iterator_category = typename it_t::iterator_category
 
using value_type = typename it_t::iterator_category
 
using reference = typename it_t::reference
 
using pointer = typename it_t::pointer
 
using difference_type = typename it_t::difference_type
 

Public Member Functions

ret_t operator* () const
 
iteratoroperator++ ()
 
iteratoroperator-- ()
 
bool is_null () const
 
 operator bool () const
 

Private Types

using it_t = typename ContainerVector::const_iterator
 
using ret_t = std::conditional_t< is_pointer, ptr_t, ref_t >
 

Private Member Functions

 iterator (it_t iter)
 

Private Attributes

it_t m_i
 

Friends

class vector_of_const_
 
bool operator!= (const iterator &lhs, const iterator &rhs)
 
bool operator== (const iterator &lhs, const iterator &rhs)
 
auto operator- (const iterator &lhs, const iterator &rhs)
 

Detailed Description

template<typename Container>
class Gaudi::Functional::details::vector_of_const_< Container >::iterator

Definition at line 306 of file FunctionalDetails.h.

Member Typedef Documentation

◆ difference_type

template<typename Container >
using Gaudi::Functional::details::vector_of_const_< Container >::iterator::difference_type = typename it_t::difference_type

Definition at line 318 of file FunctionalDetails.h.

◆ it_t

template<typename Container >
using Gaudi::Functional::details::vector_of_const_< Container >::iterator::it_t = typename ContainerVector::const_iterator
private

Definition at line 307 of file FunctionalDetails.h.

◆ iterator_category

template<typename Container >
using Gaudi::Functional::details::vector_of_const_< Container >::iterator::iterator_category = typename it_t::iterator_category

Definition at line 314 of file FunctionalDetails.h.

◆ pointer

template<typename Container >
using Gaudi::Functional::details::vector_of_const_< Container >::iterator::pointer = typename it_t::pointer

Definition at line 317 of file FunctionalDetails.h.

◆ reference

template<typename Container >
using Gaudi::Functional::details::vector_of_const_< Container >::iterator::reference = typename it_t::reference

Definition at line 316 of file FunctionalDetails.h.

◆ ret_t

template<typename Container >
using Gaudi::Functional::details::vector_of_const_< Container >::iterator::ret_t = std::conditional_t<is_pointer, ptr_t, ref_t>
private

Definition at line 311 of file FunctionalDetails.h.

◆ value_type

template<typename Container >
using Gaudi::Functional::details::vector_of_const_< Container >::iterator::value_type = typename it_t::iterator_category

Definition at line 315 of file FunctionalDetails.h.

Constructor & Destructor Documentation

◆ iterator()

template<typename Container >
Gaudi::Functional::details::vector_of_const_< Container >::iterator::iterator ( it_t  iter)
inlineprivate

Definition at line 310 of file FunctionalDetails.h.

310 : m_i( iter ) {}

Member Function Documentation

◆ is_null()

template<typename Container >
bool Gaudi::Functional::details::vector_of_const_< Container >::iterator::is_null ( ) const
inline

Definition at line 338 of file FunctionalDetails.h.

338 { return !*m_i; }

◆ operator bool()

template<typename Container >
Gaudi::Functional::details::vector_of_const_< Container >::iterator::operator bool ( ) const
inlineexplicit

Definition at line 339 of file FunctionalDetails.h.

339 { return !is_null(); }

◆ operator*()

template<typename Container >
ret_t Gaudi::Functional::details::vector_of_const_< Container >::iterator::operator* ( ) const
inline

Definition at line 323 of file FunctionalDetails.h.

323  {
324  if constexpr ( is_range ) {
325  return *m_i;
326  } else {
327  return details2::deref_if( *m_i, std::bool_constant<!is_pointer>{} );
328  }
329  }

◆ operator++()

template<typename Container >
iterator& Gaudi::Functional::details::vector_of_const_< Container >::iterator::operator++ ( )
inline

Definition at line 330 of file FunctionalDetails.h.

330  {
331  ++m_i;
332  return *this;
333  }

◆ operator--()

template<typename Container >
iterator& Gaudi::Functional::details::vector_of_const_< Container >::iterator::operator-- ( )
inline

Definition at line 334 of file FunctionalDetails.h.

334  {
335  --m_i;
336  return *this;
337  }

Friends And Related Function Documentation

◆ operator!=

template<typename Container >
bool operator!= ( const iterator lhs,
const iterator rhs 
)
friend

Definition at line 320 of file FunctionalDetails.h.

320 { return lhs.m_i != rhs.m_i; }

◆ operator-

template<typename Container >
auto operator- ( const iterator lhs,
const iterator rhs 
)
friend

Definition at line 322 of file FunctionalDetails.h.

322 { return lhs.m_i - rhs.m_i; }

◆ operator==

template<typename Container >
bool operator== ( const iterator lhs,
const iterator rhs 
)
friend

Definition at line 321 of file FunctionalDetails.h.

321 { return lhs.m_i == rhs.m_i; }

◆ vector_of_const_

template<typename Container >
friend class vector_of_const_
friend

Definition at line 309 of file FunctionalDetails.h.

Member Data Documentation

◆ m_i

template<typename Container >
it_t Gaudi::Functional::details::vector_of_const_< Container >::iterator::m_i
private

Definition at line 308 of file FunctionalDetails.h.


The documentation for this class was generated from the following file:
Gaudi::Functional::details::vector_of_const_::iterator::is_null
bool is_null() const
Definition: FunctionalDetails.h:338
Gaudi::Functional::details::vector_of_const_::is_range
static constexpr bool is_range
Definition: FunctionalDetails.h:296
Gaudi::Functional::details::vector_of_const_::iterator::m_i
it_t m_i
Definition: FunctionalDetails.h:308
Gaudi::Functional::details::details2::deref_if
T * deref_if(T *const t, std::false_type)
Definition: FunctionalDetails.h:284