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.
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
Manage memory organized into block lists (allocator)
int n
Number of negative literals for node type.
IntSet * A
Position of a piece in a square board.
unsigned int size(I &i)
Size of all ranges of range iterator i.
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
Allocator allocator
The single global default memory allocator.
IntPropLevel ba(IntPropLevel ipl)
Extract basic or advanced from propagation level.
Post propagator for f(x \diamond_{\mathit{op}} y) \sim_r z \f$ void rel(Home home
Client for block allocator of type T.
Gecode toplevel namespace