// Trac ticket // https://cforall.uwaterloo.ca/trac/ticket/238 #include #include struct cluster {}; void ?{}(cluster & this) { sout | "Cluster Ctor"; } void ?{}(cluster & this, cluster ) { sout | "Cluster CopyCtor"; } struct inner { cluster * cl; }; void ?{}(inner & this, cluster & ) { sout | "Inner Ctor"; } struct outer { inner * in; }; void ?{}(outer & this, cluster & cl ) { this.in = new(cl); } void ^?{}(outer & this) { delete(this.in); } int main() { cluster cl; outer o = { cl }; }