struct A { private int[] a; this(int[] b){a=b;} int[] c(){ return a; } @disable void opAssign(); } struct B { A a; this(int){ a=new int[5]; } int[] b(){ return a.c; } void f(){ a=new int[5]; } }