[Issue 2124] New: Using method or delegate from reduce! template.

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri May 23 11:22:16 PDT 2008


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

           Summary: Using method or delegate from reduce! template.
           Product: D
           Version: 2.012
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Phobos
        AssignedTo: bugzilla at digitalmars.com
        ReportedBy: bmyers at harryanddavid.com


Here's a transcript of Dee Girl's conclusion about this issue. She seems to
know what she's talking about:

This code does not work:

#!/home/yasuko/bin/rdmd -O -release
import std.algorithm;

class Sorter {}

class ExternalSorter : Sorter {
    string Merge(string f1, string f2) {
        return f1 ~ f2;
    }

    void Sort() {
        string[] chunk_list = [ "a", "b" ];
        auto mrg = &Merge;
        auto retfile = reduce!(mrg)(chunk_list[0], chunk_list[1..$]);
    }
}

void main(string[] args)
{
    auto s = new ExternalSorter;
    s.Sort;
}

But I know how to make it work because I look at the error message. You go to
std.algorithm and make NxNHelper from private to public. Then inside NxNHelper
also make For from private to public. Then code works.

Maybe bug report to Walter is necessary. Private should work because lookup is
in correct module. It is bug in compiler not library. Can you please? Thank
you, Dee Girl


-- 



More information about the Digitalmars-d-bugs mailing list