DIP 1018--The Copy Constructor--Community Review Round 1
Kagamin
spam at here.lot
Thu Dec 20 14:41:49 UTC 2018
On Wednesday, 19 December 2018 at 13:40:41 UTC, RazvanN wrote:
> All this copies become useless when using the copy constructor.
A copy constructor is very verbose though, imagine a copy
constructor for a struct with 30 fields, where it copies 29
fields and sets the 30th to null. Postblit is observation of
pattern that copy constructor usually changes only a small part
of the struct. In this synthetic example copying wouldn't make
much difference:
for this code:
---
struct A
{
int b;
void inc()
{
const int shadow_b=b;
//b++
const int t=shadow_b;
b=t+1;
}
}
A f(ref A a)
{
A b=a;
b.inc();
return b;
}
---
`ldc -Os` generates this code for function f:
---
movl (%rdi), %eax
addl $1, %eax
retq
---
More information about the Digitalmars-d
mailing list