Copy Constructor DIP

Johannes Pfau nospam at example.com
Thu Jul 12 17:36:16 UTC 2018


Am Thu, 12 Jul 2018 17:32:06 +0000 schrieb Johannes Pfau:

> Am Thu, 12 Jul 2018 09:48:37 -0400 schrieb Andrei Alexandrescu:
> 
>>> I agree that the current syntax is lacking. This was Andrei's
>>> proposition and I was initially against it, but he said to put it in
>>> the DIP so that we can discuss it as a community. Maybe this syntax is
>>> better:
>>> 
>>> @this(ref S a another)
>>> 
>>> It looks like the c++ copy constructor but the `@` makes it different
>>> from a constructor, so we're good. What do you think?
>> 
>> We will not add syntax if we can help it.
> 
> We have this(this) for postblits so how about this(ref this a) for copy
> constructors?
> 
> Unfortunately this is currently valid code and compiles: this is treated
> as typeof(this). However, we have already deprecated that, so maybe we
> can reuse the syntax? It should be a quite consistent evolution from
> this(this).
> 
> (Another option is this(ref this A a) which does not conflict with
> existing syntax).

I just read your other replies Andrei. I guess if we're ever going use 
the same syntax for implicit conversions, the @implicit syntax is indeed 
consistent and logical. As long as it's only used for copy-ctors the name 
feels 'strange'.

-- 
Johannes


More information about the Digitalmars-d mailing list