38 namespace Gecode {
namespace Support {
48 template<
class T,
class A,
int blocksize = 512>
77 size_t size(
void)
const;
87 template<
class T,
class A,
int blocksize = 512>
95 static void operator delete(
void*);
100 template<
class T,
class A,
int blocksize>
103 b =
static_cast<Block*
>(a.ralloc(
sizeof(Block)));
105 n = &b->b[blocksize];
106 _size =
sizeof(Block);
109 template<
class T,
class A,
int blocksize>
113 Block* f =
b;
b =
b->next;
114 a.rfree(f,
sizeof(Block));
118 template<
class T,
class A,
int blocksize>
124 template<
class T,
class A,
int blocksize>
133 template<
class T,
class A,
int blocksize>
137 Block* nb =
static_cast<Block*
>(
a.ralloc(
sizeof(Block)));
138 nb->next =
b;
b = nb;
139 n = &nb->b[blocksize];
140 _size +=
sizeof(Block);
143 template<
class T,
class A,
int blocksize>
151 template<
class T,
class A,
int blocksize>
156 template<
class T,
class A,
int blocksize>
160 template<
class T,
class A,
int blocksize>
T * operator()(void)
Return memory of size required by T.
~BlockAllocator(void)
Free all allocated blocks.
A & allocator(void)
Return allocator used.
BlockAllocator(A &a)
Initialize.
size_t size(void) const
Return size of memory required by allocator.
Manage memory organized into block lists (allocator)
int n
Number of negative literals for node type.
Client for block allocator of type T.
struct Gecode::@518::NNF::@57::@58 b
For binary nodes (and, or, eqv)
Gecode toplevel namespace
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.