Template Class UniqueCompoundIterator

Inheritance Relationships

Base Type

  • public boost::iterator_facade< UniqueCompoundIterator< ContainerT >, std::remove_reference_t< decltype(*ContainerT().begin() ->begin())>, std::random_access_iterator_tag >

Class Documentation

template<typename ContainerT>
class UniqueCompoundIterator : public boost::iterator_facade<UniqueCompoundIterator<ContainerT>, std::remove_reference_t<decltype(*ContainerT().begin()->begin())>, std::random_access_iterator_tag>

This iterator iterates over a container of containers as if it was one single container. Succeeding elements that are equal are ignored.

This container is used by the compound types of lanelet2, e.g. CompoundLineString2d.

The iterator is only bidirectional, i.e. it allows no random access in O(0).

Public Types

using ItOuter = std::decay_t<decltype(ContainerT().begin())>
using ItInner = std::decay_t<decltype(ItOuter()->begin())>

Public Functions

UniqueCompoundIterator() = default

Public Static Functions

static inline UniqueCompoundIterator begin(ContainerT &c)
static inline UniqueCompoundIterator end(ContainerT &c)

Friends

friend class boost::iterator_core_access