31#ifndef ETL_STACK_INCLUDED
32#define ETL_STACK_INCLUDED
179 ETL_INCREMENT_DEBUG_COUNT;
189 ETL_DECREMENT_DEBUG_COUNT;
199 ETL_RESET_DEBUG_COUNT;
219 template <
typename T>
256#if defined(ETL_CHECK_PUSH_POP)
271#if defined(ETL_CHECK_PUSH_POP)
275 ::new (&p_buffer[
top_index])
T(etl::move(value));
279#if ETL_USING_CPP11 && ETL_NOT_USING_STLPORT
285 template <
typename ... Args>
288#if defined(ETL_CHECK_PUSH_POP)
302#if defined(ETL_CHECK_PUSH_POP)
314 template <
typename T1>
317#if defined(ETL_CHECK_PUSH_POP)
329 template <
typename T1,
typename T2>
332#if defined(ETL_CHECK_PUSH_POP)
336 ::new (&p_buffer[
top_index])
T(value1, value2);
344 template <
typename T1,
typename T2,
typename T3>
347#if defined(ETL_CHECK_PUSH_POP)
351 ::new (&p_buffer[
top_index])
T(value1, value2, value3);
359 template <
typename T1,
typename T2,
typename T3,
typename T4>
362#if defined(ETL_CHECK_PUSH_POP)
366 ::new (&p_buffer[
top_index])
T(value1, value2, value3, value4);
403#if defined(ETL_CHECK_PUSH_POP)
424 template <
typename TContainer>
497 push(etl::move(
other.p_buffer[index++]));
521#if defined(ETL_POLYMORPHIC_STACK) || defined(ETL_POLYMORPHIC_CONTAINERS)
541 template <
typename T, const
size_t SIZE>
547 static ETL_CONSTANT
size_t MAX_SIZE = SIZE;
616 container_type buffer[SIZE];
619 template <
typename T, const
size_t SIZE>
620 ETL_CONSTANT
size_t stack<T, SIZE>::MAX_SIZE;
Definition alignment.h:231
#define ETL_ASSERT(b, e)
Definition error_handler.h:316
Definition exception.h:47
ETL_DECLARE_DEBUG_COUNT
For internal debugging purposes.
Definition stack.h:205
void del_out()
Decrements the indexes value to record a queue deletion.
Definition stack.h:185
stack & operator=(const stack &rhs)
Assignment operator.
Definition stack.h:588
reference top()
Definition stack.h:244
bool empty() const
Definition stack.h:115
~stack_base()
Destructor.
Definition stack.h:169
stack()
Default constructor.
Definition stack.h:552
stack_base(size_type max_size_)
The constructor that is called from derived classes.
Definition stack.h:159
bool full() const
Definition stack.h:124
const T * const_pointer
A const pointer to the type used in the stack.
Definition stack.h:231
const size_type CAPACITY
The maximum number of items in the stack.
Definition stack.h:204
void emplace(const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
Definition stack.h:360
void index_clear()
Clears all of the indexes.
Definition stack.h:195
size_type size() const
Returns the current number of items top the stack.
Definition stack.h:132
istack(T *p_buffer_, size_type max_size_)
The constructor that is called from derived classes.
Definition stack.h:505
size_type max_size() const
Returns the maximum number of items that can be stacked.
Definition stack.h:140
size_type current_size
The number of items in the stack.
Definition stack.h:203
void emplace()
Definition stack.h:300
void emplace(const T1 &value1)
Definition stack.h:315
void emplace(const T1 &value1, const T2 &value2)
Definition stack.h:330
size_t available() const
Definition stack.h:149
void push(const_reference value)
Definition stack.h:254
void pop()
Removes the oldest item from the top of the stack.
Definition stack.h:401
istack & operator=(const istack &rhs)
Assignment operator.
Definition stack.h:442
size_type top_index
The index of the top of the stack.
Definition stack.h:202
size_t size_type
The type used for determining the size of stack.
Definition stack.h:109
T & reference
A reference to the type used in the stack.
Definition stack.h:225
void emplace(const T1 &value1, const T2 &value2, const T3 &value3)
Definition stack.h:345
T * pointer
A pointer to the type used in the stack.
Definition stack.h:230
~stack()
Destructor.
Definition stack.h:580
stack(const stack &rhs)
Copy constructor.
Definition stack.h:560
void pop_into(TContainer &destination)
Definition stack.h:425
void clone(const istack &other)
Make this a clone of the supplied stack.
Definition stack.h:473
~istack()
Destructor.
Definition stack.h:528
void pop_into(reference destination)
Removes the oldest item from the top of the stack and puts it in the destination.
Definition stack.h:413
const T & const_reference
A const reference to the type used in the stack.
Definition stack.h:226
void add_in()
Increments the indexes value to record a stack addition.
Definition stack.h:176
void clear()
Clears the stack to the empty state.
Definition stack.h:382
stack_base::size_type size_type
The type used for determining the size of the stack.
Definition stack.h:232
T value_type
The type stored in the stack.
Definition stack.h:224
void reverse()
Reverses the stack.
Definition stack.h:434
const_reference top() const
Definition stack.h:374
This is the base for all stacks that contain a particular type.
Definition stack.h:221
add_rvalue_reference
Definition type_traits_generator.h:1327
bitset_ext
Definition absolute.h:38
Definition alignment.h:233
Definition type_traits_generator.h:2101
pair holds two objects of arbitrary type
Definition utility.h:164