38 namespace Gecode {
namespace Support {
45 template<
class T,
class A>
65 bool empty(
void)
const;
76 void push(
const T&
x);
80 static void*
operator new(
size_t s)
throw() { (void) s;
return NULL; }
82 static void operator delete(
void*
p) { (void)
p; };
89 template<
class T,
class A>
92 :
a(a0),
n(n0), tos(0), stack(
a.template alloc<T>(
n)) {}
94 template<
class T,
class A>
100 template<
class T,
class A>
106 template<
class T,
class A>
112 template<
class T,
class A>
118 template<
class T,
class A>
121 assert((tos > 0) && (tos <= static_cast<unsigned int>(
n)));
125 template<
class T,
class A>
128 assert((tos > 0) && (tos <= static_cast<unsigned int>(
n)));
132 template<
class T,
class A>
135 assert((tos >= 0) && (tos < static_cast<unsigned int>(
n)));
139 template<
class T,
class A>
142 assert(tos < static_cast<unsigned int>(
n));
void push(const T &x)
Push element x on top of stack.
T & top(void) const
Return element on top of stack.
int entries(void) const
Return number of entries currently on stack.
T & last(void) const
Return element that has just been popped.
int p
Number of positive literals for node type.
bool empty(void) const
Test whether stack is empty.
int n
Number of negative literals for node type.
StaticStack(A &a, int n)
Initialize for n elements.
void reset(void)
Reset stack (pop all elements)
~StaticStack(void)
Release memory.
Node * x
Pointer to corresponding Boolean expression node.
Stack with fixed number of elements.
T pop(void)
Pop topmost element from stack and return it.
Gecode toplevel namespace
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.