https://issues.dlang.org/show_bug.cgi?id=15869
--- Comment #12 from Walter Bright <bugzi...@digitalmars.com> --- (In reply to Walter Bright from comment #9) > The most pragmatic solution is to not allow taking a reference to an > unconstructed field. That proved unworkable. One that does work is to regard taking the address of a field as "initializing" it. Then, a = clobber(&a); is regarded as an assignment, rather than a construction, and the RVO is set to a temporary, not `a`. Nothing else I could think of was palatable. --