Bug 2124 – Using method or delegate from reduce! template.
Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P2
Component
phobos
Product
D
Version
D2
Platform
x86
OS
Windows
Creation time
2008-05-23T13:22:00Z
Last change time
2015-06-09T01:14:36Z
Assigned to
andrei
Creator
bmyers
Comments
Comment #0 by bmyers — 2008-05-23T13:22:15Z
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
Comment #1 by andrei — 2008-05-23T13:55:51Z
Many thanks to Dee Girl for finding this bug, and to Brian for relaying it. Walter is working on eliminating this and related bugs, and also on improving support for flexible alias matching in templates. We are committed on bringing a great feature to perfection.