Go to the documentation of this file.
78 #ifndef ConstCirculator_H
79 #define ConstCirculator_H
93 template<
class ContainerType>
104 typename ContainerType::const_iterator
begin_;
107 typename ContainerType::const_iterator
end_;
110 typename ContainerType::const_iterator
iter_;
115 typename ContainerType::const_iterator
fulcrum_;
123 typedef typename ContainerType::value_type
value_type;
ContainerType::const_iterator begin_
ContainerType::const_iterator end_
constexpr auto begin(C &c) -> decltype(c.begin())
ContainerType::const_reference const_reference
Walks over a container as if it were circular. The container must have the following members defined:
ContainerType::size_type size_type
bool operator!=(const ConstCirculator< ContainerType > &c) const
void operator=(const ConstCirculator< ContainerType > &)
void setIteratorToFulcrum()
ContainerType::difference_type difference_type
ConstCirculator< ContainerType > & operator++()
bool operator==(const ConstCirculator< ContainerType > &c) const
ContainerType::const_iterator const_iterator
ContainerType::const_iterator fulcrum_
graph_traits< Graph >::vertices_size_type size_type
constexpr auto end(C &c) -> decltype(c.end())
difference_type nRotations() const
const_reference operator()() const
ContainerType::value_type value_type
const_reference operator*() const
ContainerType::const_iterator iter_
const dimensionedScalar c
void setFulcrumToIterator()
const_reference next() const
Base class for circulators.
bool circulate(const CirculatorBase::direction dir=NONE)
const_reference prev() const
ConstCirculator< ContainerType > & operator--()