Trying to understand a simple piece of code: dmd barray

Steven Schveighoffer schveiguy at gmail.com
Sat Mar 7 14:33:29 UTC 2020


On 3/7/20 8:06 AM, Dibyendu Majumdar wrote:
> On Saturday, 7 March 2020 at 12:26:32 UTC, drug wrote:
> 
>>> I am trying to understand 
>>> https://github.com/dlang/dmd/blob/master/src/dmd/backend/barray.d.
>>>
>>> Two questions:
>>>
>>> 1. What does this mean and why is it needed?
>>>
>>> line 95: alias array this;
>>>
>> This means that `array` can be used instead of `this`
> 
> Hmm should not that change the meaning of this throughout the struct? is 
> this good practice?

No, it's simply a fallback. If the symbol doesn't work with this.symbol, 
try this.array.symbol.

It's D's version of implicit conversion.

You can make the alias this a no-arg function and it will try calling 
that function.

-Steve


More information about the Digitalmars-d-learn mailing list