Generated on Tue May 22 09:41:01 2018 for Gecode by doxygen 1.6.3

Gecode::Region Class Reference
[Region memory management]

Handle to region. More...

#include <region.hpp>

List of all members.

Public Member Functions

 Region (void)
 Initialize region.
void free (void)
 Free allocate memory.
 ~Region (void)
 Return memory.

Typed allocation routines



template<class T >
T * alloc (long unsigned int n)
 Allocate block of n objects of type T from region.
template<class T >
T * alloc (long int n)
 Allocate block of n objects of type T from region.
template<class T >
T * alloc (unsigned int n)
 Allocate block of n objects of type T from region.
template<class T >
T * alloc (int n)
 Allocate block of n objects of type T from region.
template<class T >
void free (T *b, long unsigned int n)
 Delete n objects allocated from the region starting at b.
template<class T >
void free (T *b, long int n)
 Delete n objects allocated from the region starting at b.
template<class T >
void free (T *b, unsigned int n)
 Delete n objects allocated from the region starting at b.
template<class T >
void free (T *b, int n)
 Delete n objects allocated from the region starting at b.
template<class T >
T * realloc (T *b, long unsigned int n, long unsigned int m)
 Reallocate block of n objects starting at b to m objects of type T from the region.
template<class T >
T * realloc (T *b, long int n, long int m)
 Reallocate block of n objects starting at b to m objects of type T from the region.
template<class T >
T * realloc (T *b, unsigned int n, unsigned int m)
 Reallocate block of n objects starting at b to m objects of type T from the region.
template<class T >
T * realloc (T *b, int n, int m)
 Reallocate block of n objects starting at b to m objects of type T from the region.

Raw allocation routines



void * ralloc (size_t s)
 Allocate memory from region.
void rfree (void *p, size_t s)
 Free memory previously allocated.

Construction routines



template<class T >
T & construct (void)
 Constructs a single object of type T from region using the default constructor.
template<class T , typename A1 >
T & construct (A1 const &a1)
 Constructs a single object of type T from region using a unary constructor.
template<class T , typename A1 , typename A2 >
T & construct (A1 const &a1, A2 const &a2)
 Constructs a single object of type T from region using a binary constructor.
template<class T , typename A1 , typename A2 , typename A3 >
T & construct (A1 const &a1, A2 const &a2, A3 const &a3)
 Constructs a single object of type T from region using a ternary constructor.
template<class T , typename A1 , typename A2 , typename A3 , typename A4 >
T & construct (A1 const &a1, A2 const &a2, A3 const &a3, A4 const &a4)
 Constructs a single object of type T from region using a quaternary constructor.
template<class T , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
T & construct (A1 const &a1, A2 const &a2, A3 const &a3, A4 const &a4, A5 const &a5)
 Constructs a single object of type T from region using a quinary constructor.

Detailed Description

Handle to region.

Definition at line 53 of file region.hpp.


Constructor & Destructor Documentation

Gecode::Region::Region ( void   )  [inline]

Initialize region.

Definition at line 346 of file region.hpp.

Gecode::Region::~Region ( void   )  [inline]

Return memory.

Definition at line 367 of file region.hpp.


Member Function Documentation

void Gecode::Region::free ( void   )  [inline]

Free allocate memory.

Note that in fact not all memory is freed, memory that has been allocated for large allocation requests will not be freed.

Definition at line 350 of file region.hpp.

template<class T >
T * Gecode::Region::alloc ( long unsigned int  n  )  [inline]

Allocate block of n objects of type T from region.

Note that this function implements C++ semantics: the default constructor of T is run for all n objects.

Definition at line 380 of file region.hpp.

template<class T >
T * Gecode::Region::alloc ( long int  n  )  [inline]

Allocate block of n objects of type T from region.

Note that this function implements C++ semantics: the default constructor of T is run for all n objects.

Definition at line 388 of file region.hpp.

template<class T >
T * Gecode::Region::alloc ( unsigned int  n  )  [inline]

Allocate block of n objects of type T from region.

Note that this function implements C++ semantics: the default constructor of T is run for all n objects.

Definition at line 394 of file region.hpp.

template<class T >
T * Gecode::Region::alloc ( int  n  )  [inline]

Allocate block of n objects of type T from region.

Note that this function implements C++ semantics: the default constructor of T is run for all n objects.

Definition at line 399 of file region.hpp.

template<class T >
void Gecode::Region::free ( T *  b,
long unsigned int  n 
) [inline]

Delete n objects allocated from the region starting at b.

Note that this function implements C++ semantics: the destructor of T is run for all n objects.

Note that the memory is not freed, the only effect is running the destructors.

Definition at line 406 of file region.hpp.

template<class T >
void Gecode::Region::free ( T *  b,
long int  n 
) [inline]

Delete n objects allocated from the region starting at b.

Note that this function implements C++ semantics: the destructor of T is run for all n objects.

Note that the memory is not freed, the only effect is running the destructors.

Definition at line 413 of file region.hpp.

template<class T >
void Gecode::Region::free ( T *  b,
unsigned int  n 
) [inline]

Delete n objects allocated from the region starting at b.

Note that this function implements C++ semantics: the destructor of T is run for all n objects.

Note that the memory is not freed, the only effect is running the destructors.

Definition at line 419 of file region.hpp.

template<class T >
void Gecode::Region::free ( T *  b,
int  n 
) [inline]

Delete n objects allocated from the region starting at b.

Note that this function implements C++ semantics: the destructor of T is run for all n objects.

Note that the memory is not freed, the only effect is running the destructors.

Definition at line 424 of file region.hpp.

template<class T >
T * Gecode::Region::realloc ( T *  b,
long unsigned int  n,
long unsigned int  m 
) [inline]

Reallocate block of n objects starting at b to m objects of type T from the region.

Note that this function implements C++ semantics: the copy constructor of T is run for all $\min(n,m)$ objects, the default constructor of T is run for all remaining $\max(n,m)-\min(n,m)$ objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 431 of file region.hpp.

template<class T >
T * Gecode::Region::realloc ( T *  b,
long int  n,
long int  m 
) [inline]

Reallocate block of n objects starting at b to m objects of type T from the region.

Note that this function implements C++ semantics: the copy constructor of T is run for all $\min(n,m)$ objects, the default constructor of T is run for all remaining $\max(n,m)-\min(n,m)$ objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 447 of file region.hpp.

template<class T >
T * Gecode::Region::realloc ( T *  b,
unsigned int  n,
unsigned int  m 
) [inline]

Reallocate block of n objects starting at b to m objects of type T from the region.

Note that this function implements C++ semantics: the copy constructor of T is run for all $\min(n,m)$ objects, the default constructor of T is run for all remaining $\max(n,m)-\min(n,m)$ objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 454 of file region.hpp.

template<class T >
T * Gecode::Region::realloc ( T *  b,
int  n,
int  m 
) [inline]

Reallocate block of n objects starting at b to m objects of type T from the region.

Note that this function implements C++ semantics: the copy constructor of T is run for all $\min(n,m)$ objects, the default constructor of T is run for all remaining $\max(n,m)-\min(n,m)$ objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 460 of file region.hpp.

void * Gecode::Region::ralloc ( size_t  s  )  [inline]

Allocate memory from region.

Definition at line 355 of file region.hpp.

void Gecode::Region::rfree ( void *  p,
size_t  s 
) [inline]

Free memory previously allocated.

Note that the memory is only guaranteed to be freed after the region object itself gets deleted.

Definition at line 364 of file region.hpp.

template<class T >
T & Gecode::Region::construct ( void   )  [inline]

Constructs a single object of type T from region using the default constructor.

Definition at line 472 of file region.hpp.

template<class T , typename A1 >
T & Gecode::Region::construct ( A1 const &  a1  )  [inline]

Constructs a single object of type T from region using a unary constructor.

The parameter is passed as a const reference.

Definition at line 477 of file region.hpp.

template<class T , typename A1 , typename A2 >
T & Gecode::Region::construct ( A1 const &  a1,
A2 const &  a2 
) [inline]

Constructs a single object of type T from region using a binary constructor.

The parameters are passed as const references.

Definition at line 484 of file region.hpp.

template<class T , typename A1 , typename A2 , typename A3 >
T & Gecode::Region::construct ( A1 const &  a1,
A2 const &  a2,
A3 const &  a3 
) [inline]

Constructs a single object of type T from region using a ternary constructor.

The parameters are passed as const references.

Definition at line 491 of file region.hpp.

template<class T , typename A1 , typename A2 , typename A3 , typename A4 >
T & Gecode::Region::construct ( A1 const &  a1,
A2 const &  a2,
A3 const &  a3,
A4 const &  a4 
) [inline]

Constructs a single object of type T from region using a quaternary constructor.

The parameters are passed as const references.

Definition at line 498 of file region.hpp.

template<class T , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
T & Gecode::Region::construct ( A1 const &  a1,
A2 const &  a2,
A3 const &  a3,
A4 const &  a4,
A5 const &  a5 
) [inline]

Constructs a single object of type T from region using a quinary constructor.

The parameters are passed as const references.

Definition at line 505 of file region.hpp.


The documentation for this class was generated from the following files: