File LinkCollectionIterator.h

namespace podio
template<typename FromT, typename ToT, bool Mutable>
class LinkCollectionIteratorT
#include <podio/detail/LinkCollectionIterator.h>

Public Types

using value_type = LinkType
using difference_type = ptrdiff_t
using reference = LinkType
using pointer = LinkType*
using iterator_category = std::input_iterator_tag
using iterator_concept = std::random_access_iterator_tag

Public Functions

inline LinkCollectionIteratorT(size_t index, const LinkObjPointerContainer<FromT, ToT> *coll)
LinkCollectionIteratorT() = default
LinkCollectionIteratorT(const LinkCollectionIteratorT&) = default
LinkCollectionIteratorT &operator=(const LinkCollectionIteratorT&) = default
LinkCollectionIteratorT(LinkCollectionIteratorT&&) = default
LinkCollectionIteratorT &operator=(LinkCollectionIteratorT&&) = default
~LinkCollectionIteratorT() = default
inline auto operator<=>(const LinkCollectionIteratorT &other) const
inline bool operator==(const LinkCollectionIteratorT &other) const
inline LinkType operator*() const
inline LinkType *operator->()
inline LinkCollectionIteratorT &operator++()
inline LinkCollectionIteratorT operator++(int)
inline LinkCollectionIteratorT &operator--()
inline LinkCollectionIteratorT operator--(int)
inline LinkCollectionIteratorT &operator+=(difference_type n)
inline LinkCollectionIteratorT operator+(difference_type n) const
inline LinkCollectionIteratorT &operator-=(difference_type n)
inline LinkCollectionIteratorT operator-(difference_type n) const
inline LinkType operator[](difference_type n) const
inline difference_type operator-(const LinkCollectionIteratorT &other) const

Private Types

using LinkType = LinkT<FromT, ToT, Mutable>
using LinkObjT = LinkObj<FromT, ToT>

Private Members

size_t m_index = {0}
LinkType m_object = {podio::utils::MaybeSharedPtr<LinkObjT>{nullptr}}
const LinkObjPointerContainer<FromT, ToT> *m_collection = {nullptr}

Friends

inline friend LinkCollectionIteratorT operator+(difference_type n, const LinkCollectionIteratorT &it)