[Issue 1758] New: Lazy Parameters in Closures - Access Violation

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Jan 1 08:42:06 PST 2008


http://d.puremagic.com/issues/show_bug.cgi?id=1758

           Summary: Lazy Parameters in Closures - Access Violation
           Product: D
           Version: 2.009
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P3
         Component: DMD
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: xnknet at gmail.com


The following code will cause an access violation error.

T delegate() lazier(T)(lazy T arg){
        bool once = true;
        T value;
        return {
                if(once){
                        once = false;
                        value = arg;
                }
                return value;
        };
}

void main(){
        auto l = lazier(rand());
        writeln(l()); // Access violation
}


-- 



More information about the Digitalmars-d-bugs mailing list