Go to the documentation of this file.
77 template<
class ContainerType>
88 typename ContainerType::iterator
begin_;
91 typename ContainerType::iterator
end_;
94 typename ContainerType::iterator
iter_;
99 typename ContainerType::iterator
fulcrum_;
107 typedef typename ContainerType::value_type
value_type;
117 typedef typename ContainerType::iterator
iterator;
121 typedef typename ContainerType::reference
reference;
130 inline explicit Circulator(ContainerType& container);
bool operator==(const Circulator< ContainerType > &c) const
reference operator*() const
bool circulate(const CirculatorBase::direction dir=NONE)
constexpr auto begin(C &c) -> decltype(c.begin())
ContainerType::size_type size_type
ContainerType::iterator fulcrum_
void setFulcrumToIterator()
Walks over a container as if it were circular. The container must have the following members defined:
Circulator< ContainerType > & operator++()
bool operator!=(const Circulator< ContainerType > &c) const
ContainerType::difference_type difference_type
ContainerType::iterator iterator
void operator=(const Circulator< ContainerType > &)
reference operator()() const
ContainerType::reference reference
graph_traits< Graph >::vertices_size_type size_type
ContainerType::iterator iter_
constexpr auto end(C &c) -> decltype(c.end())
difference_type nRotations() const
ContainerType::value_type value_type
const dimensionedScalar c
ContainerType::iterator end_
Base class for circulators.
ContainerType::iterator begin_
void setIteratorToFulcrum()
Circulator< ContainerType > & operator--()