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());
122 this->stateCore().push_back (elm);
129 this->stateCore().emplace_back (std::move (elm));
134 insert (TY
const& elm)
143 this->__throw_if_empty();
144 TY topElement (std::move (this->stateCore().back()));
145 this->stateCore().pop_back();
152 this->stateCore().clear();
161 return unConst(
this)->stateCore().size();
197 this->stateCore().push_front (elm);
204 this->stateCore().emplace_front (std::move (elm));
209 insert (TY
const& elm)
217 this->__throw_if_empty();
218 TY firstElement (std::move (this->stateCore().back()));
219 this->stateCore().pop_back();
229 return unConst(
this)->stateCore().size();
248 : queue_(initialElements)
252 template<
typename IT>
254 usingSequence (IT src)
262 wrapping (TY
const& elm)
284 return Builder(initial);
306 elements (T
const& e0, T
const& e1, T
const& e2)
313 elements (T
const& e0, T
const& e1, T
const& e2, T
const& e3)
315 return IterQueue<T>().feed(e0).feed(e1).feed(e2).feed(e3);
320 elements (T
const& e0, T
const& e1, T
const& e2, T
const& e3, T
const& e4)
322 return IterQueue<T>().feed(e0).feed(e1).feed(e2).feed(e3).feed(e4);
IterQueue< T > elements(T const &elm)
convenience free function to build an iterable sequence
A Stack which can be popped by iterating.
Helper template(s) for creating Lumiera Forward Iterators.
Any copy and copy construction prohibited.
Implementation namespace for support and library code.
A Queue which can be pulled by iterating.
Mix-Ins to allow or prohibit various degrees of copying and cloning.
Another Lumiera Forward Iterator building block, based on incorporating a state type as »*State Core*...
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...
Lumiera error handling (C++ interface).
friend IterQueue::Builder build(IterQueue &initial)
Extension point to be picked up by ADL.
Wrapper to mark a std::deque instance for use as "state core" within lib::IterStateWrapper.
Adapter for use as opaque sequence.