syntax question on "invariant" keyword
Michael Kiermaier
michael.kiermaier at gmx.net
Wed Jul 4 04:15:25 PDT 2007
Daniel919 Wrote:
> Are you using dmd 1.x ? The final-const-invariant thing only works on
> the experimental 2.x version. I tried your example there and it compiles
> without errors as expected.
Well, that seems to be the problem:
My dmd command reports:
Digital Mars D Compiler v1.018
Where can I get the 2.x version? I cannot find it in the "download" section on the Digitalmars D hompage
And what exactly is the status of 2.x? I believe I read somewhere, that D 2.0 was officially released. But now you write that it is still experimental.
> "invariant(int) x" this is useless and does not mean that x can't be
> changed, what someone might think at first.
> Using brackets means that you can assign another instance of TYPE to the
> variable. But you can't change the data of the instance.
>
> "invariant(int) x" means: you can assign another instance of int to x
> You see, this doesn't make sense.
> It's equal useless for all simple storage classes.
>
> However, "final invariant(int) x = 1" works like "invariant int x = 1",
> because final means: you can't assign another int to x
Thanks for the explanation!
~michael
More information about the Digitalmars-d-learn
mailing list