Quick Links: |
#include <bslstl_stack.h>
Public Types | |
typedef CONTAINER::value_type | value_type |
typedef CONTAINER::reference | reference |
typedef CONTAINER::const_reference | const_reference |
typedef CONTAINER::size_type | size_type |
typedef CONTAINER | container_type |
Public Member Functions | |
BSLMF_NESTED_TRAIT_DECLARATION_IF (stack, BloombergLP::bslma::UsesBslmaAllocator, BloombergLP::bslma::UsesBslmaAllocator< container_type >::value) | |
stack () | |
stack (const stack &original) | |
stack (BloombergLP::bslmf::MovableRef< stack > original) | |
stack (const CONTAINER &container) | |
stack (BloombergLP::bslmf::MovableRef< CONTAINER > container) | |
template<class ALLOCATOR > | |
stack (const ALLOCATOR &basicAllocator, typename enable_if< bsl::uses_allocator< CONTAINER, ALLOCATOR >::value, ALLOCATOR >::type *=0) | |
template<class ALLOCATOR > | |
stack (const CONTAINER &container, const ALLOCATOR &basicAllocator, typename enable_if< bsl::uses_allocator< CONTAINER, ALLOCATOR >::value, ALLOCATOR >::type *=0) | |
template<class ALLOCATOR > | |
stack (const stack &original, const ALLOCATOR &basicAllocator, typename enable_if< bsl::uses_allocator< CONTAINER, ALLOCATOR >::value, ALLOCATOR >::type *=0) | |
template<class ALLOCATOR > | |
stack (BloombergLP::bslmf::MovableRef< CONTAINER > container, const ALLOCATOR &basicAllocator, typename enable_if< bsl::uses_allocator< CONTAINER, ALLOCATOR >::value, ALLOCATOR >::type *=0) | |
template<class ALLOCATOR > | |
stack (BloombergLP::bslmf::MovableRef< stack > original, const ALLOCATOR &basicAllocator, typename enable_if< bsl::uses_allocator< CONTAINER, ALLOCATOR >::value, ALLOCATOR >::type *=0) | |
stack & | operator= (const stack &rhs) |
stack & | operator= (BloombergLP::bslmf::MovableRef< stack > rhs) BSLS_KEYWORD_NOEXCEPT_SPECIFICATION(false) |
template<class... Args> | |
reference | emplace (Args &&...args) |
void | pop () |
void | push (const value_type &value) |
void | push (BloombergLP::bslmf::MovableRef< value_type > value) |
bool | empty () const |
size_type | size () const |
const_reference | top () const |
Public Attributes | |
void swap(stack &other) BSLS_KEYWORD_NOEXCEPT_SPECIFICATION(bsl reference | top () |
Protected Attributes | |
container_type | c |
Friends | |
template<class VAL , class CONT > | |
bool | operator== (const stack< VAL, CONT > &, const stack< VAL, CONT > &) |
template<class VAL , class CONT > | |
bool | operator!= (const stack< VAL, CONT > &, const stack< VAL, CONT > &) |
template<class VAL , class CONT > | |
bool | operator< (const stack< VAL, CONT > &, const stack< VAL, CONT > &) |
template<class VAL , class CONT > | |
bool | operator> (const stack< VAL, CONT > &, const stack< VAL, CONT > &) |
template<class VAL , class CONT > | |
bool | operator<= (const stack< VAL, CONT > &, const stack< VAL, CONT > &) |
template<class VAL , class CONT > | |
bool | operator>= (const stack< VAL, CONT > &, const stack< VAL, CONT > &) |
This class
defines a container adapter which supports access primarily via push
, pop
, and top
. This type can be based on a variety of other container types, including deque
, vector
, and list
. This type is value-semantic if the supporting CONTAINER
and VALUE
are value-semantic.
Note that we never use VALUE
in the implementation except in the default argument of CONTAINER
. We use CONTAINER::value_type
for everything, which means that if CONTAINER
is specified, then VALUE
is ignored.