xxxxxxxxxx
struct A
{
int[] data;
this(ref return scope A rhs) { /* body */ }
this(ref return scope const A rhs) const { /* body */ }
this(ref return scope immutable A rhs) immutable { /* body */ }
}
struct B
{
A a;
// default generated copy constructor, by section 14.15.6.2
this(ref return scope inout(B) src) inout
{
foreach (i, ref inout field; src.tupleof)
this.tupleof[i] = field;
}
}