Why D const is annoying
Mehrdad
wfunction at hotmail.com
Sat Dec 10 11:44:18 PST 2011
On 12/10/2011 11:43 AM, Mehrdad wrote:
> Oh, nice, here's an ICE for y'all :)
>
>
> struct Matrix(T)
> {
> @property T[] data() { return null; }
>
> int opApply(scope int delegate(ref size_t[], ref T) dg) { return 0; }
> int opApply(scope int delegate(ref const(size_t[]), ref const(T))
> dg) const { return 0; }
>
> Matrix!(typeof(mixin("data[0] " ~ op ~ " data[0]")))
> opBinary(string op)(Matrix other)
> {
> auto result = typeof(return)();
> foreach (i, ref val; this)
> { mixin("result[i] = val " ~ op ~ " other[i];"); }
> return result;
> }
> }
>
> void main() { auto m = Matrix!size_t(); m = m * m; }
BTW this _DOES_ look like another issue related to const.
Oh and the error is
annoy.d(12): Error: cannot uniquely infer foreach argument types
Assertion failure: '0' on line 144 in file 'statement.c'
More information about the Digitalmars-d
mailing list