Quick Links:

bal | bbl | bdl | bsl

Public Types | Public Member Functions | Public Attributes | Protected Attributes | Friends

bsl::stack< VALUE, CONTAINER > Class Template Reference
[Component bslstl_stack]

#include <bslstl_stack.h>

List of all members.

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)
stackoperator= (const stack &rhs)
stackoperator= (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 > &)

Detailed Description

template<class VALUE, class CONTAINER = deque<VALUE>>
class bsl::stack< VALUE, CONTAINER >

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.

See Component bslstl_stack


The documentation for this class was generated from the following file: