|
| stack (const SERIAL< TYPE, ALLOC< TYPE > > &serial=SERIAL< TYPE, ALLOC< TYPE > >{}) |
| Constructs a stack with specified underlying container and allocator.
|
|
| stack (const std::initializer_list< TYPE > &lst) |
| Constructs stack from initializer list with allocator.
|
|
| stack (const stack &other) |
| Copy constructs a stack with allocator propagation.
|
|
stack & | operator= (const stack &other) |
| Copy assignment operator.
|
|
| stack (stack &&other) noexcept |
| Move constructs a stack with allocator propagation.
|
|
stack & | operator= (stack &&other) noexcept |
| Move assignment operator.
|
|
void | push (const TYPE &e) |
| Pushes element to the top of the stack.
|
|
TYPE | pop () |
| Removes and returns top element from the stack.
|
|
TYPE | top () const |
| Accesses the top element of the stack.
|
|
std::string | className () const override |
| Gets the class name identifier.
|
|
u_integer | size () const override |
| Returns the number of elements in the adapter.
|
|
void | clear () |
| Removes all elements from the adapter.
|
|
bool | contains (const TYPE &e) const override |
| Checks for element existence in the adapter.
|
|
integer | compareTo (const containerAdapter &other) const override |
| Compares two container adapters lexicographically.
|
|
std::string | toString (bool enter) const override |
| Generates formatted string representation.
|
|
| ~containerAdapter () override=default |
| Virtual destructor for proper polymorphic cleanup.
|
|
| operator std::string () const |
| Explicit conversion to std::string.
|
|
| operator const char * () const |
| Explicit conversion to C-style string.
|
|
const char * | toCString (bool enter) const |
| Direct C-string access with formatting control.
|
|
template<typename TYPE> |
auto | formatString (const TYPE &t) -> std::string |
|
template<typename TYPE> |
auto | formatCString (const TYPE &t) -> const char * |
|
template<typename TYPE> |
auto | formatEnum (const TYPE &t) -> std::string |
|
template<typename TYPE> |
auto | formatString (TYPE *const &ptr) -> std::string |
|
bool | empty () const |
| Checks if the container is empty.
|
|
virtual | ~container ()=default |
| Destructor for the container class.
|
|
virtual integer | compareTo (const containerAdapter< TYPE, chain, allocator > &other) const=0 |
| Compares the current object with another of the same type.
|
|
bool | operator== (const containerAdapter< TYPE, chain, allocator > &other) const |
| Checks if the current object is equal to another.
|
|
bool | operator!= (const containerAdapter< TYPE, chain, allocator > &other) const |
| Checks if the current object is not equal to another.
|
|
bool | operator< (const containerAdapter< TYPE, chain, allocator > &other) const |
| Checks if the current object is less than another.
|
|
bool | operator> (const containerAdapter< TYPE, chain, allocator > &other) const |
| Checks if the current object is greater than another.
|
|
bool | operator<= (const containerAdapter< TYPE, chain, allocator > &other) const |
| Checks if the current object is less than or equal to another.
|
|
bool | operator>= (const containerAdapter< TYPE, chain, allocator > &other) const |
| Checks if the current object is greater than or equal to another.
|
|
virtual | ~comparable ()=default |
| Virtual destructor for proper cleanup of derived objects.
|
|
|
template<typename TYPE> |
static std::string | formatString (const TYPE &t) |
| Universal value-to-string conversion.
|
|
template<typename TYPE> |
static std::string | formatString (TYPE *const &ptr) |
| Pointer-specific formatting.
|
|
template<typename TYPE> |
static const char * | formatCString (const TYPE &t) |
| C-string cache for temporary usage.
|
|
template<typename TYPE> |
static std::string | formatEnum (const TYPE &t) |
| Enum formatting utility.
|
|
template<> |
auto | formatString (const char &t) -> std::string |
|
template<> |
auto | formatString (const bool &t) -> std::string |
|
template<> |
auto | formatString (const char *const &ptr) -> std::string |
|
| containerAdapter (const chain< TYPE, allocator< TYPE > > &serial) |
| Constructs a container adapter with specified underlying container.
|
|
| container (allocator< TYPE > alloc=allocator< TYPE >{}) |
| Constructs a container with specified allocator.
|
|
TYPE * | allocate (u_integer size) |
| Allocates raw memory for elements.
|
|
void | deallocate (TYPE *ptr, u_integer size) |
| Deallocates memory previously allocated by allocate()
|
|
void | construct (O_TYPE *o_ptr, Args &&... args) |
| Constructs an element in-place.
|
|
void | destroy (O_TYPE *o_ptr) |
| Destroys an element.
|
|
chain< TYPE, allocator< TYPE > > | serial_ |
| The underlying container instance.
|
|
allocator< TYPE > | allocator |
| The allocator instance used for memory management.
|
|
template<typename TYPE, template< typename, typename > typename SERIAL = chain, template< typename > typename ALLOC = allocator>
class original::stack< TYPE, SERIAL, ALLOC >
Last-In-First-Out (LIFO) container adapter.
- Template Parameters
-
TYPE | Type of elements stored in the stack |
SERIAL | Underlying container type (default: chain) |
ALLOC | Allocator type for memory management (default: allocator<TYPE>) |
Implements stack operations using the specified underlying container type. Provides standard stack interface including push, pop, top, and comparison operations. The adapter maintains elements through composition with the specified SERIAL container.
The allocator is propagated to both the stack adapter and the underlying serial container for consistent memory management. The ALLOC type must meet the C++ allocator requirements and provide:
- allocate()/deallocate() methods
- construct()/destroy() methods
- propagate_on_container_copy_assignment/move_assignment typedefs