Gecode::Heap Class Reference
Common functionality » Memory management » %Heap memory management

Heap memory management class More...

`#include <heap.hpp>`

## Public Member Functions

| Heap (void)
| Default constructor (ensuring that only a single instance is created).

## Typed allocation routines

template<class T>
T * | alloc (long unsigned int n)
| Allocate block of n objects of type T from heap.
template<class T>
T * | alloc (long int n)
| Allocate block of n objects of type T from heap.
template<class T>
T * | alloc (unsigned int n)
| Allocate block of n objects of type T from heap.
template<class T>
T * | alloc (int n)
| Allocate block of n objects of type T from heap.
template<class T>
void | free (T *b, long unsigned int n)
| Delete n objects starting at b.
template<class T>
void | free (T *b, long int n)
| Delete n objects starting at b.
template<class T>
void | free (T *b, unsigned int n)
| Delete n objects starting at b.
template<class T>
void | free (T *b, int n)
| Delete n objects 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 heap.
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 heap.
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 heap.
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 heap.
template<class T>
T ** | realloc (T **b, long unsigned int n, long unsigned int m)
| Reallocate block of n pointers starting at b to m objects of type T* from heap.
template<class T>
T ** | realloc (T **b, long int n, long int m)
| Reallocate block of n pointers starting at b to m objects of type T* from heap.
template<class T>
T ** | realloc (T **b, unsigned int n, unsigned int m)
| Reallocate block of n pointers starting at b to m objects of type T* from heap.
template<class T>
T ** | realloc (T **b, int n, int m)
| Reallocate block of n pointers starting at b to m objects of type T* from heap.
template<class T>
static T * | copy (T *d, const T *s, long unsigned int n)
| Copy n objects starting at s to d.
template<class T>
static T * | copy (T *d, const T *s, long int n)
| Copy n objects starting at s to d.
template<class T>
static T * | copy (T *d, const T *s, unsigned int n)
| Copy n objects starting at s to d.
template<class T>
static T * | copy (T *d, const T *s, int n)
| Copy n objects starting at s to d.
template<class T>
static T ** | copy (T **d, const T **s, long unsigned int n)
| Copy n pointers starting at s to d.
template<class T>
static T ** | copy (T **d, const T **s, long int n)
| Copy n pointers starting at s to d.
template<class T>
static T ** | copy (T **d, const T **s, unsigned int n)
| Copy n pointers starting at s to d.
template<class T>
static T ** | copy (T **d, const T **s, int n)
| Copy n pointers starting at s to d.

## Raw allocation routines

void * | ralloc (size_t s)
| Allocate s bytes from heap.
void | rfree (void *p)
| Free memory block starting at p.
void | rfree (void *p, size_t s)
| Free memory block starting at p with size s.
void * | rrealloc (void *p, size_t s)
| Change memory block starting at p to size s.

## Detailed Description

Heap memory management class

All routines throw an exception of MemoryExhausted, if a request cannot be fulfilled.

Definition at line 62 of file heap.hpp.

## Constructor & Destructor Documentation

## Heap()

Gecode::Heap::Heap | ( | void |  | ) |

Default constructor (ensuring that only a single instance is created).

Definition at line 38 of file heap.cpp.

## Member Function Documentation

## alloc() [1/4]

template<class T>

T * Gecode::Heap::alloc | ( | long unsigned int | n | ) |

inline

Allocate block of n objects of type T from heap.

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

Definition at line 431 of file heap.hpp.

## alloc() [2/4]

template<class T>

T * Gecode::Heap::alloc | ( | long int | n | ) |

inline

Allocate block of n objects of type T from heap.

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

Definition at line 439 of file heap.hpp.

## alloc() [3/4]

template<class T>

T * Gecode::Heap::alloc | ( | unsigned int | n | ) |

inline

Allocate block of n objects of type T from heap.

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

Definition at line 445 of file heap.hpp.

## alloc() [4/4]

template<class T>

T * Gecode::Heap::alloc | ( | int | n | ) |

inline

Allocate block of n objects of type T from heap.

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

Definition at line 450 of file heap.hpp.

## free() [1/4]

template<class T>

void Gecode::Heap::free | ( | T * | b,
|  | long unsigned int | n )

inline

Delete n objects starting at b.

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

Definition at line 457 of file heap.hpp.

## free() [2/4]

template<class T>

void Gecode::Heap::free | ( | T * | b,
|  | long int | n )

inline

Delete n objects starting at b.

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

Definition at line 464 of file heap.hpp.

## free() [3/4]

template<class T>

void Gecode::Heap::free | ( | T * | b,
|  | unsigned int | n )

inline

Delete n objects starting at b.

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

Definition at line 470 of file heap.hpp.

## free() [4/4]

template<class T>

void Gecode::Heap::free | ( | T * | b,
|  | int | n )

inline

Delete n objects starting at b.

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

Definition at line 475 of file heap.hpp.

## realloc() [1/8]

template<class T>

T * Gecode::Heap::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 heap.

Note that this function implements C++ semantics: the copy constructor of T is run for all objects, the default constructor of T is run for all remaining objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 482 of file heap.hpp.

## realloc() [2/8]

template<class T>

T * Gecode::Heap::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 heap.

Note that this function implements C++ semantics: the copy constructor of T is run for all objects, the default constructor of T is run for all remaining objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 495 of file heap.hpp.

## realloc() [3/8]

template<class T>

T * Gecode::Heap::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 heap.

Note that this function implements C++ semantics: the copy constructor of T is run for all objects, the default constructor of T is run for all remaining objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 502 of file heap.hpp.

## realloc() [4/8]

template<class T>

T * Gecode::Heap::realloc | ( | T * | b,
|  | int | n,
|  | int | m )

inline

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

Note that this function implements C++ semantics: the copy constructor of T is run for all objects, the default constructor of T is run for all remaining objects, and the destrucor of T is run for all n objects in b.

Returns the address of the new block.

Definition at line 508 of file heap.hpp.

## realloc() [5/8]

template<class T>

T ** Gecode::Heap::realloc | ( | T ** | b,
|  | long unsigned int | n,
|  | long unsigned int | m )

inline

Reallocate block of n pointers starting at b to m objects of type T* from heap.

Returns the address of the new block.

This is a specialization for performance.

Definition at line 557 of file heap.hpp.

## realloc() [6/8]

template<class T>

T ** Gecode::Heap::realloc | ( | T ** | b,
|  | long int | n,
|  | long int | m )

inline

Reallocate block of n pointers starting at b to m objects of type T* from heap.

Returns the address of the new block.

This is a specialization for performance.

Definition at line 562 of file heap.hpp.

## realloc() [7/8]

template<class T>

T ** Gecode::Heap::realloc | ( | T ** | b,
|  | unsigned int | n,
|  | unsigned int | m )

inline

Reallocate block of n pointers starting at b to m objects of type T* from heap.

Returns the address of the new block.

This is a specialization for performance.

Definition at line 569 of file heap.hpp.

## realloc() [8/8]

template<class T>

T ** Gecode::Heap::realloc | ( | T ** | b,
|  | int | n,
|  | int | m )

inline

Reallocate block of n pointers starting at b to m objects of type T* from heap.

Returns the address of the new block.

This is a specialization for performance.

Definition at line 575 of file heap.hpp.

## copy() [1/8]

template<class T>

T * Gecode::Heap::copy | ( | T * | d,
|  | const T * | s,
|  | long unsigned int | n )

inline static

Copy n objects starting at s to d.

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

Returns d.

Definition at line 583 of file heap.hpp.

## copy() [2/8]

template<class T>

T * Gecode::Heap::copy | ( | T * | d,
|  | const T * | s,
|  | long int | n )

inline static

Copy n objects starting at s to d.

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

Returns d.

Definition at line 590 of file heap.hpp.

## copy() [3/8]

template<class T>

T * Gecode::Heap::copy | ( | T * | d,
|  | const T * | s,
|  | unsigned int | n )

inline static

Copy n objects starting at s to d.

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

Returns d.

Definition at line 596 of file heap.hpp.

## copy() [4/8]

template<class T>

T * Gecode::Heap::copy | ( | T * | d,
|  | const T * | s,
|  | int | n )

inline static

Copy n objects starting at s to d.

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

Returns d.

Definition at line 601 of file heap.hpp.

## copy() [5/8]

template<class T>

T ** Gecode::Heap::copy | ( | T ** | d,
|  | const T ** | s,
|  | long unsigned int | n )

inline static

Copy n pointers starting at s to d.

Returns d.

This is a specialization for performance.

Definition at line 646 of file heap.hpp.

## copy() [6/8]

template<class T>

T ** Gecode::Heap::copy | ( | T ** | d,
|  | const T ** | s,
|  | long int | n )

inline static

Copy n pointers starting at s to d.

Returns d.

This is a specialization for performance.

Definition at line 651 of file heap.hpp.

## copy() [7/8]

template<class T>

T ** Gecode::Heap::copy | ( | T ** | d,
|  | const T ** | s,
|  | unsigned int | n )

inline static

Copy n pointers starting at s to d.

Returns d.

This is a specialization for performance.

Definition at line 657 of file heap.hpp.

## copy() [8/8]

template<class T>

T ** Gecode::Heap::copy | ( | T ** | d,
|  | const T ** | s,
|  | int | n )

inline static

Copy n pointers starting at s to d.

Returns d.

This is a specialization for performance.

Definition at line 662 of file heap.hpp.

## ralloc()

void * Gecode::Heap::ralloc | ( | size_t | s | ) |

inline

Allocate s bytes from heap.

Definition at line 357 of file heap.hpp.

## rfree() [1/2]

void Gecode::Heap::rfree | ( | void * | p | ) |

inline

Free memory block starting at p.

Definition at line 371 of file heap.hpp.

## rfree() [2/2]

void Gecode::Heap::rfree | ( | void * | p,
|  | size_t | s )

inline

Free memory block starting at p with size s.

Definition at line 381 of file heap.hpp.

## rrealloc()

void * Gecode::Heap::rrealloc | ( | void * | p,
|  | size_t | s )

inline

Change memory block starting at p to size s.

Definition at line 391 of file heap.hpp.

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

- gecode/support/heap.hpp
- gecode/support/heap.cpp