On 02/25/2012 06:53 PM, deadalnix wrote:
Le 25/02/2012 12:40, Timon Gehr a écrit :
On 02/24/2012 01:41 PM, deadalnix wrote:
Le 18/02/2012 19:25, Walter Bright a écrit :
On 2/18/2012 6:49 AM, kenji hara wrote:
After some thoughts, I agree that inheritance of pure @safe, and
nothrow is good feature.
But I disagree to const inference, because const attribute interacts
with overloadings.

The const inheritance *only* happens if otherwise you'd get a
covariance
error. It does not change the meaning of any existing code that
compiled
successfully.

yes but then, if a method is added to the base class, you will have a
changement of behavior of all overriden method, silently.


No. The compiler will explode in your face.


class A {
     void fun() const { ... }
}

class B : A {
     override void fun() { ... }
}

Now I change the class A to become :

class A {
     void fun() const { ... }
     void fun() { ... }
}

And suddenly, the override doesn't override the same thing anymore.
Which is unnacceptable.

You didn't try to actually compile this, did you? ;D

Reply via email to