about const and immutable (again)

Don nospam at nospam.com
Mon Oct 10 23:42:12 PDT 2011


On 11.10.2011 03:29, Andrei Alexandrescu wrote:
> On 10/10/11 5:55 PM, Don wrote:
>> On 06.10.2011 20:56, Steven Schveighoffer wrote:
>>> On Thu, 06 Oct 2011 12:27:16 -0400, Gor Gyolchanyan
>>> <gor.f.gyolchanyan at gmail.com> wrote:
>>>
>>>> I see. Thanks for the detailed answer.
>>>
>>> I should clarify one point, I realized I am somewhat inaccurate on the
>>> reason the type is set to immutable(dchar). In fact, nobody actually
>>> wrote the immutable(dchar) function, it's just that the element type is
>>> immutable(dchar). However, the reasons why someone would want to create
>>> a function that takes an immutable(dchar) function are as I stated -- so
>>> you don't accidentally change the value.
>>
>> That seems like the discussed-and-discarded 'final' storage class for
>> parameters. But this is worse. It has an *enormous* cost.
>
> Walter and I have agreed for a long time that upon function calls with
> by-value passing, there should be some simple transforms done:
>
> 1. If a parameter has no indirections, qual(T) becomes T.
>
> 2. qual(T[]) becomes qual(T)[].
>
> 3. qual(T*) becomes qual(T)*.
>
> This would improve many aspects of the language. Walter never got to
> implementing it, but I'm bringing this up in case one of the wonderful
> compiler contributors would want to take it up. Again, I have reasons to
> believe Walter would approve of the change.
>
>
> Thanks,
>
> Andrei

Excellent! That'd be a huge improvement.



More information about the Digitalmars-d mailing list