P99
Variable Length Arrays
Collaboration diagram for Variable Length Arrays:

## Macros

#define P99_AALLOC(T, VB, N)   P00_AALLOC(P99_ATYPE(T, , VB, N))
Allocate a new matrix of base type T and with N dimensions as given by VB. More...

#define P99_AARG(TYPE, NAME, DIM, VAR)
Declare a pointer to array function argument of basetype TYPE, with name NAME, dimension DIM and naming scheme for the length variables VAR{0}, ... VAR{DIM - 1}. More...

#define P99_ACALL(ARR, N, TYPE)
Pass a pointer to an N dimensional array ARR to a function. More...

#define P99_ALEN(ARR, N)
Produce the length of the argument array ARR in terms of number of elements. More...

#define P99_ALENS(ARR, N)   P99_FOR(ARR, N, P00_ALENS0, P00_ALEN, P99_REP(N,))
Produce a list of the lengths of the argument array ARR in terms of the number of elements in the first N dimensions. More...

#define P99_ANAME(NAME, DIM, VAR)
Declare list of variable names as produced by P99_AARG. More...

#define P99_AREF(T, ARR, ...)   T P99_ARRAY(*const ARR, __VA_ARGS__)

#define P99_AREF1(T, ARR, ...)   T P99_ARRAY(ARR, static const 1, __VA_ARGS__)

#define P99_ARRAY(ARR, ...)   (ARR)P99_SUBSCRIPT(__VA_ARGS__)

#define P99_ATYPE(T, A, B, N)   P99_AREF(T, A, P99_ALENS(*B, N))
Declare a new matrix A of base type T and with N dimensions as given by B. More...

#define P99_SUBSCRIPT(...)   P99_SER(P00_SUBSCRIPT, __VA_ARGS__)
Transform the list of arguments `x0, x1, ...` to array subscripts `[x0][x1]...` More...

## Detailed Description

P99_AARG
#define P99_AARG(TYPE, NAME, DIM, VAR)
Declare a pointer to array function argument of basetype TYPE, with name NAME, dimension DIM and nami...
Definition: p99_for.h:750