34namespace Gecode {
namespace Support {
44 template<
class T,
class A,
int blocksize = 512>
83 template<
class T,
class A,
int blocksize = 512>
91 static void operator delete(
void*);
96 template<
class T,
class A,
int blocksize>
99 b =
static_cast<Block*
>(a.ralloc(
sizeof(Block)));
101 n = &b->b[blocksize];
102 _size =
sizeof(Block);
105 template<
class T,
class A,
int blocksize>
110 a.rfree(f,
sizeof(Block));
114 template<
class T,
class A,
int blocksize>
120 template<
class T,
class A,
int blocksize>
129 template<
class T,
class A,
int blocksize>
133 Block* nb =
static_cast<Block*
>(
a.ralloc(
sizeof(Block)));
134 nb->next =
b;
b = nb;
135 n = &nb->b[blocksize];
136 _size +=
sizeof(Block);
139 template<
class T,
class A,
int blocksize>
147 template<
class T,
class A,
int blocksize>
152 template<
class T,
class A,
int blocksize>
156 template<
class T,
class A,
int blocksize>
struct Gecode::@603::NNF::@65::@66 b
For binary nodes (and, or, eqv)
int n
Number of negative literals for node type.
struct Gecode::@603::NNF::@65::@67 a
For atomic nodes.
Manage memory organized into block lists (allocator)
A & allocator(void)
Return allocator used.
~BlockAllocator(void)
Free all allocated blocks.
size_t size(void) const
Return size of memory required by allocator.
BlockAllocator(A &a)
Initialize.
T * operator()(void)
Return memory of size required by T.
Client for block allocator of type T.
Base * next(void) const
Return next test.
Gecode toplevel namespace
IntPropLevel ba(IntPropLevel ipl)
Extract basic or advanced from propagation level.