how to declare an immutable class?

Charles Hixson via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Aug 11 21:49:46 PDT 2016


On 08/11/2016 06:33 PM, Mike Parker via Digitalmars-d-learn wrote:
> On Friday, 12 August 2016 at 00:44:31 UTC, Charles Hixson wrote:
>> A way around this, which may be the same as the approach used by 
>> string was:
>>
>> alias immutable(Msg_)    Msg;
>> class    Msg_
>> {  ...
>
>
> This is exactly what Jonathan suggested in the post above. And yes, 
> it's how string is handled:
>
> alias string = immutable(char)[];
>
>>
>> This so far appears to do what I want.  The only problem is that it 
>> introduces an extraneous symbol, which I would prefer to avoid.
>
> What problem do you want to avoid? This is a common D idiom. Alias 
> names are very short-lived. Yes, it's another symbol in the namespace, 
> but it will never make it to the object file. It won't even make it to 
> error messages -- you'll see Msg_ there instead.
Yes, I saw his answer after I'd posted my resolution.
It works, it's just not the syntax that I'd prefer.  And it leaves me 
wondering exactly what
immutable class Msg {...}
was declaring.



More information about the Digitalmars-d-learn mailing list