Inability to dup/~ for const arrays of class objects

Jonathan M Davis jmdavisProg at gmx.com
Tue May 28 19:24:21 PDT 2013


On Tuesday, May 28, 2013 18:19:49 Ali Çehreli wrote:
> I remember the discussions on that topic and various syntax proposals
> but I don't remember why class variable assignment syntax would not work:

The problem is that the type system does not differentiate between a class 
object and a reference to a class object. The type refers explicitly to the 
reference, not the object. It doesn't have the concept of a class object 
separate from its reference, so regardless of what syntax could be proposed, 
the compiler needs to be rewired a fair bit with regards to classes in order 
to make it possible to separate the class object and the reference pointing to 
it. Walter tried it but gave up on it after having quite a few problems with 
it. I fully expect that it's feasible, but it's hard enough that it hasn't 
happened. Someone (Michel Fortin IIRC) created one of the first dmd pull 
requests with a possible solution, but Walter didn't get around to reviewing 
it (probably because he was sick of dealing with the issue), and it suffered 
bitrot to the point that it was dropped. I don't know how viable that pull 
request was, but someone else would need to put in similar effort (if not more) 
in order to rewire the compiler enough to understand the difference between a 
class object and its reference.

- Jonathan M Davis


More information about the Digitalmars-d mailing list