object states

Henning Pohl henning at still-hidden.de
Sun Oct 7 13:34:07 PDT 2012


On Sunday, 7 October 2012 at 20:18:15 UTC, Ali Çehreli wrote:
> Sounds good.
Thanks.

> You haven't mentioned the invariant keyword, so perhaps you are 
> not aware of that feature?
>
>   http://dlang.org/class.html#Invariant
>
>   http://dlang.org/dbc.html
>
> Although the docs seem to favor classes, invariant is available 
> for structs as well.
>
> Ali
How would you resolve the issue I wrote in my first post using 
invariants? You cannot add/remove checks from invariants while 
using the object. That's what I made different. But there are 
still some limits given by the language. Look at point 7 for 
instance.

The problem about contract programming in general is you cannot 
use it in public library code. Distinction between logic and user 
input is a very important thing, we really need to improve this. 
You may have noticed that I did not make use of either assert or 
enforce. I didn't want to specify this.


More information about the Digitalmars-d mailing list