function overrides but is not covariant

Namespace rswhite4 at googlemail.com
Sun Apr 28 12:45:39 PDT 2013


That surprised me a bit. Is that expected?

----
import std.stdio;

struct A { }

interface IFoo {
	void bar(ref const A);
}

class Foo : IFoo {
	void bar(ref const A a) {
		
	}
	
	void bar(const A a) {
		return this.bar(a);
	}
}
----
prints:

Error: function c517.Foo.bar of type void(const(A) a) overrides 
but is not covariant with c517.IFoo.bar of type void(ref const(A))


More information about the Digitalmars-d-learn mailing list