Gecode::ArgArrayBase< T > Class Template Reference
Inherited by Gecode::PrimArgArray< T >.
Detailed Description
template<class T>
class Gecode::ArgArrayBase< T >
Base-class for argument arrays.
Argument arrays are used as convenient mechanism of passing arguments when calling functions as they combine both the size and the elements of an array. For a small number of elements, memory is allocated by creating an argument array object. Otherwise the memory is allocated from the heap.
This base-class is not to be used directly, use PrimArgArray for argument arrays of primitive types and VarArgArray for argument arrays storing variables.
Definition at line 350 of file array.icc.
Constructors and initialization | |
ArgArrayBase (int n) | |
Allocate array with n elements. | |
ArgArrayBase (const ArgArrayBase< T > &a) | |
Initialize from argument array a (copy elements). | |
const ArgArrayBase< T > & | operator= (const ArgArrayBase< T > &a) |
Initialize from view array a (copy elements). | |
Array size | |
int | size (void) const |
Return size of array (number of elements). | |
Array elements | |
T & | operator[] (int i) |
Return element at position i. | |
const T & | operator[] (int i) const |
Return element at position i. | |
Destructor | |
~ArgArrayBase (void) | |
Destructor. | |
Protected Member Functions | |
T * | allocate (int n) |
Allocate memory for n elements. | |
Protected Attributes | |
int | n |
Number of elements. | |
T * | a |
Element array. | |
T | onstack [onstack_size] |
In-array storage for elements. | |
Static Protected Attributes | |
static const int | onstack_size = 16 |
How much elements are possible inside array. |
Constructor & Destructor Documentation
template<class T>
Gecode::ArgArrayBase< T >::ArgArrayBase | ( | int | n | ) | [inline] |
template<class T>
Gecode::ArgArrayBase< T >::ArgArrayBase | ( | const ArgArrayBase< T > & | a | ) | [inline] |
template<class T>
Gecode::ArgArrayBase< T >::~ArgArrayBase | ( | void | ) | [inline] |
Member Function Documentation
template<class T>
T * Gecode::ArgArrayBase< T >::allocate | ( | int | n | ) | [inline, protected] |
template<class T>
const ArgArrayBase< T > & Gecode::ArgArrayBase< T >::operator= | ( | const ArgArrayBase< T > & | a | ) | [inline] |
template<class T>
int Gecode::ArgArrayBase< T >::size | ( | void | ) | const [inline] |
template<class T>
T & Gecode::ArgArrayBase< T >::operator[] | ( | int | i | ) | [inline] |
template<class T>
const T & Gecode::ArgArrayBase< T >::operator[] | ( | int | i | ) | const [inline] |
Member Data Documentation
template<class T>
int Gecode::ArgArrayBase< T >::n [protected] |
template<class T>
T* Gecode::ArgArrayBase< T >::a [protected] |
template<class T>
const int Gecode::ArgArrayBase< T >::onstack_size = 16 [static, protected] |
template<class T>
T Gecode::ArgArrayBase< T >::onstack[onstack_size] [protected] |
The documentation for this class was generated from the following file:
- gecode/kernel/array.icc (Revision: 6240)