46#ifndef LIB_ITER_STACK_H
47#define LIB_ITER_STACK_H
79 return not this->empty();
85 REQUIRE (not this->empty());
86 return unConst(
this)->back();
92 REQUIRE (not this->empty());
129 this->
stateCore().emplace_back (std::move (elm));
144 TY topElement (std::move (this->
stateCore().back()));
161 return unConst(
this)->stateCore().size();
204 this->
stateCore().emplace_front (std::move (elm));
218 TY firstElement (std::move (this->
stateCore().back()));
229 return unConst(
this)->stateCore().size();
252 template<
typename IT>
313 elements (T
const& e0, T
const& e1, T
const& e2, T
const& e3)
320 elements (T
const& e0, T
const& e1, T
const& e2, T
const& e3, T
const& e4)
Another Lumiera Forward Iterator building block, based on incorporating a state type as »*State Core*...
void __throw_if_empty() const
iter::IterDequeStorage< TY > & stateCore()
allow derived classes to access state representation
Any copy and copy construction prohibited.
Lumiera error handling (C++ interface).
Helper template(s) for creating Lumiera Forward Iterators.
Implementation namespace for support and library code.
IterQueue< T > elements(T const &elm)
convenience free function to build an iterable sequence
OBJ * unConst(const OBJ *)
shortcut to save some typing when having to define const and non-const variants of member functions
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Adapter for use as opaque sequence.
IterQueue & wrapping(TY const &elm)
IterQueue & usingSequence(IT src)
Builder(IterQueue &initialElements)
A Queue which can be pulled by iterating.
friend IterQueue::Builder build(IterQueue &initial)
Extension point to be picked up by ADL.
IterQueue & insert(TY const &elm)
IterQueue & feed(TY &&elm)
IterQueue & feed(TY const &elm)
A Stack which can be popped by iterating.
IterStack & insert(TY const &elm)
IterStack & push(TY &&elm)
IterStack & push(TY const &elm)
Wrapper to mark a std::deque instance for use as "state core" within lib::IterStateWrapper.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...