Latest const expansion
Regan Heath
regan at netmail.co.nz
Tue Sep 11 10:52:54 PDT 2007
Regan Heath wrote:
> Alexander Panek wrote:
>> Regan Heath wrote:
>>> Thoughts? Too complicated? :P
>>
>> It's a tad complicated, but makes sense. More sense - to me - than the
>> former const/invariant/final and the upcoming const/invariant
>> combinations. At least you summed it up in a way so I understand it. :)
>>
>> Yet, I have some questions:
>> --
>> class A { int i; }
>>
>> const(*A) a;
>> --
>> Do I understand correctly? The variable `a' - as in a reference to an
>> instance of `class A' is mutable, but the instance `a' refers to is
>> not? (read as: `class A { const { int i; ... } }', just for this
>> instance reference) This also means, that you can reference to another
>> instance with `a':
>> --
>> a = b;
>> --
>> Right?
>
> Correct.
>
>> --
>> const(&A) a;
>> --
>> This means, that the reference to the class instance is not mutable,
>> yet the actual instance is?
>
> Correct.
>
>> What exactly do `const(T)[]' and `const(T)*' imply? Immutable data, or
>> immutable reference/pointer?
>
> Immutable data.
Slight correction; 'data' in this case is whatever the type of T is,
which could be a class reference or a pointer, of course.
Regan
More information about the Digitalmars-d
mailing list