Original Post
This is what I'm trying to do: I get an 'INTERNAL COMPILER ERROR' when I use (instantiate) the templated method. However this works fine: I can place in any number 1, 2, 3...etc. for the rows to append but the compiler spills its guts out when I try to generalize the append function with the template P. What is the reason for this? Also the implimentation details are irrelevant, "empty" code still produces the same errors.
template<WORD N, WORD M>
struct Matrix
{
...
template<WORD P>
Matrix<N+P, M> append(const Matrix<P, M>&) const;
...
};
template<WORD N, WORD M>
struct Matrix
{
...
Matrix<N+1, M> append(const Matrix<1, M>&) const;
...
};