34 namespace Gecode {
namespace Support {
44 template<
class T,
class A,
int blocksize = 512>
73 size_t size(
void)
const;
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>
109 Block*
f =
b;
b =
b->next;
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>
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)
int n
Number of negative literals for node type.
struct Gecode::@593::NNF::@62::@63 b
For binary nodes (and, or, eqv)
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::@593::NNF::@62::@64 a
For atomic nodes.