On Saturday, 13 September 2014 at 05:07:32 UTC, Trey Brisbane wrote:
Hey all,

I have a class method defined like so:

abstract class MyClass {
public:
        @property
        abstract SomeClassType getField() pure nothrow
        out(result) {
                assert(result !is null, "Error: getField() returned null.");
        }
}

As you can see, this method is abstract, as well as in an abstract class. Why, then, do I get the following error when compiling it?

"Error: function module.MyClass.getField in and out contracts require function body"

Is this a compiler bug, or is there a reason for this?

Thanks for your time!

I thought it was an error, but then I found this in the documentation:

http://dlang.org/attribute.html#abstract

"Functions declared as abstract can still have function bodies. This is so that even though they must be overridden, they can still provide ‘base class functionality.’"

=> it's intentional

Reply via email to