-> and :: operators
Ali Çehreli via Digitalmars-d
digitalmars-d at puremagic.com
Fri Oct 9 08:13:59 PDT 2015
On 10/09/2015 05:19 AM, Ola Fosheim Grøstad wrote:
> On Friday, 9 October 2015 at 04:15:42 UTC, Ali Çehreli wrote:
>> Go feature where you just type a dot after a pointer and the language
>> is so great that it works! You don't need to type (*p).member. Isn't
>> Go awesome!
>>
>> I responded "yep, it's a great feature and those gostards will never
>> admit that they took that feature from D." (There is probably earlier
>> precedence but it felt great to say it to my friend. :) )
>
> Just about all higher languages does this, since the reference type does
> not have members. Simula too.
>
> But this unfortunately breaks down when you add smart-pointers, which
> makes this approach unsound since pointer-type members collide with
> object members.
Yeah... Type properties is another example for D: .sizeof and .alignof
are not propagated to the pointee and .stringof is not propagated to the
type of the pointee.
Similarly, for class references, one must remember to use
__traits(classInstanceSize) and std.traits.classInstanceAlignment. (Yes,
I notice the inconsistency. ;) )
Ali
More information about the Digitalmars-d
mailing list