4#ifndef _Stroika_Foundation_Containers_Deque_h_
5#define _Stroika_Foundation_Containers_Deque_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
20 using Traversal::IInputIterator;
21 using Traversal::IIterableOfTo;
22 using Traversal::Iterable;
23 using Traversal::Iterator;
85#if qCompilerAndStdLib_RequiresNotMatchInlineOutOfLineForTemplateClassBeingDefined_Buggy
89 _AssertRepValidType ();
93 template <IInputIterator<T> ITERATOR_OF_ADDABLE>
99 explicit Deque (shared_ptr<_IRep>&&
src)
noexcept;
100 explicit Deque (
const shared_ptr<_IRep>&
src)
noexcept;
157 nonvirtual
void _AssertRepValidType ()
const;
Implementation detail for Deque<T> implementors.
typename inherited::value_type value_type
nonvirtual T back() const
nonvirtual value_type RemoveTail()
nonvirtual void AddHead(ArgByValueType< value_type > item)
nonvirtual void push_front(ArgByValueType< value_type > item)
Implementation detail for Queue<T> implementors.
A Queue is a first-in-first-out (FIFO) data structure, where elements are arranged in well-ordered fa...
nonvirtual void AddAllToTail(ITERABLE_OF_ADDABLE &&s)
typename inherited::value_type value_type
nonvirtual CONTAINER_OF_T As(CONTAINER_OF_T_CONSTRUCTOR_ARGS... args) const
static constexpr default_sentinel_t end() noexcept
Support for ranged for, and STL syntax in general.
conditional_t<(sizeof(CHECK_T)<=2 *sizeof(void *)) and is_trivially_copyable_v< CHECK_T >, CHECK_T, const CHECK_T & > ArgByValueType
This is an alias for 'T' - but how we want to pass it on stack as formal parameter.