Typedefs themselves may be templated, as best illustrated by the following example:
template <pint N, M> defproc matrix(bool x[N][M]) { ... } template <pint L> typedef matrix<1, L> row; row<3> a_row_of_length_3; template <pint H> typedef matrix<H, 1> col; col<3> a_col_of_height_3; template <pint N> typedef matrix<N, N> square; square<2> a_2x2_square_matrix;
The typedef template feature is useful for binding selected parameters of highly generalized template definitions to conveniently reduce the number of parameters.
Q: Can typedef templates be defined with default parameter values?