On Saturday, 10 December 2011 at 11:11:44 UTC, Walter Bright
wrote:
On 12/10/2011 3:04 AM, Mehrdad wrote:
On 12/10/2011 3:01 AM, Walter Bright wrote:
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
That's not the issue.
If you say 'int' instead of size_t, it works fine.
That's because
Matrix!(int, cast(int)1)
is considered a different template instantiation (and hence a
different type) from
Matrix!(int, cast(uint)1)
Madness. I can't believe you think this is sane behaviour.