34namespace Gecode {
namespace Support {
41 template<
class T,
class A>
76 static void*
operator new(
size_t s)
throw() { (void) s;
return NULL; }
78 static void operator delete(
void*
p) { (void)
p; };
80 DynamicQueue(
const DynamicQueue& s) :
a(s.
a) {}
82 const DynamicQueue& operator =(
const DynamicQueue&) {
return *
this; }
86 template<
class T,
class A>
88 DynamicQueue<T,A>::move(
int& i) {
89 i = (
i+1) & (limit - 1);
92 template<
class T,
class A>
94 DynamicQueue<T,A>::resize(
void) {
96 T* nq =
a.template alloc<T>(limit << 1);
98 for (
int i = fst;
i<limit;
i++)
100 for (
int i = 0;
i<lst;
i++)
102 a.template free<T>(q,limit);
109 template<
class T,
class A>
112 :
a(a0), limit(8), fst(0), lst(0), q(
a.template alloc<T>(limit)) {}
114 template<
class T,
class A>
120 template<
class T,
class A>
126 template<
class T,
class A>
132 template<
class T,
class A>
141 template<
class T,
class A>
int p
Number of positive literals for node type.
struct Gecode::@603::NNF::@65::@67 a
For atomic nodes.
Queue with arbitrary number of elements.
~DynamicQueue(void)
Release memory.
void push(const T &x)
Push element x to queue.
bool empty(void) const
Test whether queue is empty.
DynamicQueue(A &a)
Initialize queue.
T pop(void)
Pop element added first from queue and return it.
void reset(void)
Reset queue to be empty.
Gecode toplevel namespace
Post propagator for SetVar x
Gecode::IntArgs i({1, 2, 3, 4})