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