29 #ifndef LARCORE_COREUTILS_DEREFERENCEITERATOR_H 
   30 #define LARCORE_COREUTILS_DEREFERENCEITERATOR_H 
   34 #include <type_traits>  
   42       template <
typename BeginIter, 
typename EndIter>
 
   50         BeginIter 
const& 
begin()
 const { 
return b; }
 
   51         EndIter 
const& 
end()
 const { 
return e; }
 
   55       template <
typename BeginIter, 
typename EndIter>
 
   62       template <
typename Iter, 
typename Value>
 
   78         using pointer = std::add_pointer_t<value_type>;
 
   79         using reference = std::add_lvalue_reference_t<value_type>;
 
   99         template <
typename OtherIter, 
typename OtherValue>
 
  105               "Copying from a iterator with incompatible value" 
  112         template <
typename OtherIter, 
typename OtherValue>
 
  118               "Moving from a iterator with incompatible value" 
  147           { 
return { 
iter + offset }; }
 
  149           { 
return { 
iter - offset }; }
 
  186       template <
typename Iter, 
typename Value>
 
  216     template <
typename Iter>
 
  219       std::add_const_t<std::decay_t<decltype(**(std::declval<Iter>()))>>
 
  233     template <
typename Iter>
 
  236       std::decay_t<decltype(**(std::declval<Iter>()))>
 
  254     template <
typename Iter>
 
  268     template <
typename Cont>
 
  282     template <
typename Cont>
 
  296     template <
typename Cont>
 
  310     template <
typename Cont>
 
  339     template <
typename Cont>
 
  375     template <
typename Cont>
 
  389     template <
typename Iter>
 
  394     template <
typename Cont>
 
  399     template <
typename Cont>
 
  404     template <
typename Cont>
 
  409     template <
typename Cont>
 
  435     template <
typename Cont>
 
  471     template <
typename Cont>
 
  484 #endif // LARCORE_COREUTILS_DEREFERENCEITERATOR_H 
typename iterator_t::difference_type difference_type
auto operator+(typename DereferenceIteratorBase< Iter, Value >::difference_type offset, DereferenceIteratorBase< Iter, Value > const &iter)
Swapped addition operator. 
double std(const std::vector< short > &wf, const double ped_mean, size_t start, size_t nsample)
auto crbeginDereferenceIterator(Cont &cont)
bool operator<=(this_t const &other) const 
BEGIN_PROLOG TPC Trig offset(g4 rise time) ProjectToHeight
auto crendDereferenceIterator(Cont &cont)
DereferenceIteratorBase(Iter const &iter, initialize_tag)
Constructor: copies the specified iterator in. 
iterator_t iter
wrapper iterator 
BeginIter const & begin() const 
auto dereferenceConstIteratorLoop(Cont &cont)
Returns an object enabling a dereferencing range-for loop. 
auto dereferenceIteratorLoop(Cont &cont)
Returns an object enabling a dereferencing range-for loop. 
EndIter const & end() const 
auto rendDereferenceIterator(Cont &cont)
Returns a dereference reverse iterator to the end of container. 
auto dereferenceIteratorReverseLoop(Cont &cont)
Returns an object enabling a dereferencing reverse range-for loop. 
bool operator<(this_t const &other) const 
auto beginDereferenceIterator(Cont &cont)
Returns a dereference iterator to the begin of specified container. 
this_t & operator++()
Prefix increment operator. 
bool operator==(this_t const &other) const 
Base class for dereferencing iterators. 
auto makeIteratorBox(BeginIter b, EndIter e)
std::add_lvalue_reference_t< value_type > reference
std::add_pointer_t< value_type > pointer
detail::DereferenceIteratorBase< Iter, std::add_const_t< std::decay_t< decltype(**(std::declval< Iter >()))>> > DereferenceConstIterator
An iterator wrapper to dereference pointed values. 
auto makeDereferenceConstIterator(Iter &&iter)
DereferenceIteratorBase()=default
Default constructor. 
this_t operator+(difference_type offset) const 
this_t & operator--()
Prefix decrement operator. 
auto makeDereferenceIterator(Iter &&iter)
Returns a dereference iterator to the begin of specified container. 
pointer operator->() const 
Returns a reference to the data pointed by the original iterator. 
Iter iterator_t
wrapped iterator type 
this_t & operator+=(difference_type offset)
DereferenceIteratorBase< Iter, Value > this_t
this type 
typename iterator_t::iterator_category iterator_category
bool is_null() const 
Bonus: returns true if the pointer is not dereferentiable. 
auto dereferenceConstIteratorReverseLoop(Cont &cont)
Returns an object enabling a dereferencing reverse range-for loop. 
reference operator*() const 
Returns a reference to the data pointed by the original iterator. 
auto rbeginDereferenceIterator(Cont &cont)
Returns a dereference reverse iterator to the begin of container. 
this_t operator--(int)
Postfix decrement operator. 
reference operator[](difference_type i) const 
Returns a reference to the i-th element after the pointed one. 
this_t & operator-=(difference_type offset)
DereferenceIteratorBase(Iter &&iter, initialize_tag)
Constructor: acquires the specified iterator. 
bool operator!=(this_t const &other) const 
this_t operator-(difference_type offset) const 
auto cendDereferenceIterator(Cont &cont)
Tag used for initialization. 
auto cbeginDereferenceIterator(Cont &cont)
QuadExpr operator*(double v, const QuadExpr &e)
this_t operator++(int)
Postfix increment operator. 
bool operator>=(this_t const &other) const 
bool operator>(this_t const &other) const 
auto endDereferenceIterator(Cont &cont)
Returns a dereference iterator to the end of specified container. 
IteratorBox(BeginIter b, EndIter e)