opEquals on shared object
Steven Schveighoffer via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jun 30 05:21:03 PDT 2016
On 6/30/16 6:26 AM, jj75607 wrote:
> Hello!
>
> I need to overload opEquals on shared class C
>
> shared class C
> {
> override bool opEquals(Object o) { return false; }
> }
>
> But compilation fails with the message:
> Error: function f700.C.opEquals does not override any function, did you
> mean to override 'object.Object.opEquals'?
>
> What am I doing wrong?
Object.opEquals is not marked shared. You can't override a non-shared
method with a shared one.
You need to remove override.
But... unfortunately, this may not work in practice. The opEquals
handling for objects is pretty much screwed unless you have unshared
mutable objects. I think it may work for const objects, but not in a
good way.
-Steve
More information about the Digitalmars-d-learn
mailing list