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>
size_t size(void) const
Return size of memory required by allocator.
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.
Manage memory organized into block lists (allocator)
struct Gecode::@554::NNF::@60::@62 a
For atomic nodes.
int n
Number of negative literals for node type.
unsigned int size(I &i)
Size of all ranges of range iterator i.
Allocator allocator
The single global default memory allocator.
IntPropLevel ba(IntPropLevel ipl)
Extract basic or advanced from propagation level.
Client for block allocator of type T.
Gecode toplevel namespace
struct Gecode::@554::NNF::@60::@61 b
For binary nodes (and, or, eqv)