August 20, 2018 Pure opEquals in a class | ||||
---|---|---|---|---|
| ||||
The code below doesn't work. Is it possible to make a pure opEquals in a class? void main() { class A { bool a; int b; this(bool g, int h) { a = g; b = h; } pure bool opEquals(const A rhs) const { return b == rhs.b; } } A a = new A(true, 5); A b = new A(false, 5); assert(a == b); //fails } |
August 20, 2018 Re: Pure opEquals in a class | ||||
---|---|---|---|---|
| ||||
Posted in reply to werter | On Monday, 20 August 2018 at 19:36:15 UTC, werter wrote: > The code below doesn't work. Is it possible to make a pure opEquals in a class? > [...] > pure bool opEquals(const A rhs) const > { > return b == rhs.b; > } It doesn't work because `rhs` has the wrong type. It must be `Object`. override pure bool opEquals(const Object rhs) const { const A a = cast(A) rhs; return b == a.b; } |
Copyright © 1999-2021 by the D Language Foundation