On 12/10/2011 2:34 AM, Mehrdad wrote: > ... and another... > > struct Matrix(T, size_t N = 1) > { public auto mul(Matrix!(T, N) other) const { return this; } } In general, to refer to the current template being expanded from inside of it, just give its name, as in: Matrix!(T,N) => Matrix