'final' variables
Frits van Bommel
fvbommel at REMwOVExCAPSs.nl
Tue Mar 20 08:52:14 PDT 2007
Stewart Gordon wrote:
> Tyler Knott Wrote:
>> Lionello Lunesu Wrote:
>>> What's the use of "final" for variables? I'm saying "for
>>> variables" because for methods the benefit is only too clear.
>> Because the "const" keyword is being repurposed for read-only
>> references to mutable or non-mutable data, we need a new
>> keyword for non-mutable variables.
> <snip>
>
> C++ manages with const for both, so why can't D? What circumstance is there in which either keyword would be valid with different meanings?
If you apply "const" to a class reference, how would you determine which
of {reference,object} the const applies to?
- If to the reference only, you can't express the constness of objects.
- If to the object only, you can't express non-rebindability of the
reference. (C++ doesn't have this problem, since the only references it
has are implicitly final all by themselves)
- If to both, you can only express constness of objects by
simultaneously disallowing the reference to be rebound. Not nice.
I think that covers all cases (except 'neither', but that simply doesn't
make any sense ;) ).
More information about the Digitalmars-d
mailing list