41 template<
class T,
class A>
75 static void*
operator new(
size_t s) =
delete;
77 static void operator delete(
void* p) =
delete;
84 template<
class T,
class A>
87 : a(a0), n(n0), tos(0), stack(a.template alloc<T>(n)) {}
89 template<
class T,
class A>
95 template<
class T,
class A>
101 template<
class T,
class A>
107 template<
class T,
class A>
113 template<
class T,
class A>
116 assert((tos > 0) && (tos <=
static_cast<unsigned int>(n)));
120 template<
class T,
class A>
123 assert((tos > 0) && (tos <=
static_cast<unsigned int>(n)));
127 template<
class T,
class A>
130 assert((tos >= 0) && (tos <
static_cast<unsigned int>(n)));
134 template<
class T,
class A>
137 assert(tos <
static_cast<unsigned int>(n));
void push(const T &x)
Push element x on top of stack.
void reset(void)
Reset stack (pop all elements).
~StaticStack(void)
Release memory.
StaticStack(const StaticStack &s)=delete
Copy constructor (disabled).
T pop(void)
Pop topmost element from stack and return it.
T & last(void) const
Return element that has just been popped.
bool empty(void) const
Test whether stack is empty.
const StaticStack & operator=(const StaticStack &)=delete
Assignment operator (disabled).
StaticStack(A &a, int n)
Initialize for n elements.
T & top(void) const
Return element on top of stack.
int entries(void) const
Return number of entries currently on stack.
Support algorithms and datastructures
Gecode toplevel namespace