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.

Reply via email to