Copy Constructor DIP
RazvanN
razvan.nitu1305 at gmail.com
Thu Jul 12 06:54:37 UTC 2018
> What's wrong with:
> struct S {
> this(ref S copyFrom);
> }
>
> That looks like a perfectly good copy constructor declaration
> ;) I'm just saying, the DIP needs to explain this.
That is actually a valid constructor, according to today's
compiler. There
might be code out there that uses this syntax for the constructor
and overnight
it will be turned into a copy constructor.
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?
> Right. This is all obvious and intuitive.
> What I'm hearing is that under this proposal, copy constructors
> and
> assignment operators DO come in pairs (just like in C++), but
> that's
> not mentioned here in this DIP. Since this proposal will
> introduce
> that recommended pattern from C++, it may be worth mentioning.
If by "come in pairs" you mean that you can define them both,
then yes,
that is the case. Will add a paragraph in the DIP to specify this.
You mentioned that it's terrible that the assignment operator
and the copy constructor come in pairs. Why is that? Would you
rather
have a copy constructor that is used also as an assignment
operator?
More information about the Digitalmars-d
mailing list