On Sunday, 11 October 2015 at 09:43:04 UTC, Idan Arye wrote:
This is the innovation in D(regarding this issue) - that on struct types, the same operator is used for BOTH the value type and the pointer to it.

BETA is the successor to Simula and it does not distinguish between value or reference and only use dot reference. What they do instead of having a dereference operator is to have a "reference operator" and also a "pattern operator" for type variables. So it works something like this:

Call a and send the output as the input to b and then store the result:

    (1,(2,3)) -> a -> b -> (c,(d,e))

Assign reference a to b (instanced class/function)

    a[] -> b[]

Replace class-type variable a with class-type b (not instanced, which is equivalent to a class-type/function pointer)

     a## -> b##

It makes a lot of sense for an OO language since we usually use the referenced content more often than we want to change the pointer.

Reply via email to