http://d.puremagic.com/issues/show_bug.cgi?id=8715
[email protected] changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|map, filter, zip with |map, filter, zip, not with |functional |functional |arrays/associative arrays |arrays/associative arrays --- Comment #6 from [email protected] 2012-12-30 18:14:53 PST --- Two more examples: import std.algorithm: filter; import std.functional: not; void main() { bool[] bad = [true, true, false, false, true, false]; auto items = [0, 1, 2, 3, 4, 5]; auto r1 = items.filter!bad(); auto r2 = items.filter!(not!bad)(); } ...\dmd2\src\phobos\std\algorithm.d(1226): Error: function expected before (), not bad of type bool[] ...\dmd2\src\phobos\std\algorithm.d(1248): Error: function expected before (), not bad of type bool[] ...\dmd2\src\phobos\std\algorithm.d(1214): Error: template instance test.main.FilterResult!(bad, int[]) error instantiating test.d(6): instantiated from here: filter!(int[]) test.d(6): Error: template instance test.main.filter!(bad).filter!(int[]) error instantiating ...\dmd2\src\phobos\std\algorithm.d(1226): Error: template test.main.not!(bad).not does not match any function template declaration. Candidates are: ...\dmd2\src\phobos\std\functional.d(184): test.main.not!(bad).not(T...)(T args) if (is(typeof(!unaryFun!(pred)(args))) || is(typeof(!binaryFun!(pred)(args)))) ...\dmd2\src\phobos\std\algorithm.d(1226): Error: template test.main.not!(bad).not(T...)(T args) if (is(typeof(!unaryFun!(pred)(args))) || is(typeof(!binaryFun!(pred)(args)))) cannot deduce template function from argument types !()(int) ...\dmd2\src\phobos\std\algorithm.d(1248): Error: template test.main.not!(bad).not does not match any function template declaration. Candidates are: ...\dmd2\src\phobos\std\functional.d(184): test.main.not!(bad).not(T...)(T args) if (is(typeof(!unaryFun!(pred)(args))) || is(typeof(!binaryFun!(pred)(args)))) ...\dmd2\src\phobos\std\algorithm.d(1248): Error: template test.main.not!(bad).not(T...)(T args) if (is(typeof(!unaryFun!(pred)(args))) || is(typeof(!binaryFun!(pred)(args)))) cannot deduce template function from argument types !()(int) ...\dmd2\src\phobos\std\algorithm.d(1214): Error: template instance std.algorithm.FilterResult!(not, int[]) error instantiating test.d(7): instantiated from here: filter!(int[]) test.d(7): Error: template instance std.algorithm.filter!(not).filter!(int[]) error instantiating - - - - - - - - - - - - - - - - import std.algorithm: filter; struct IsOdd { static bool opCall(in int n) { return n % 2 == 1; } } void main() { auto items = [0, 1, 2, 3, 4, 5, 6, 7, 8]; auto r1 = items.filter!(i => IsOdd(i))(); // OK auto r2 = items.filter!IsOdd(); // Error. } test.d(10): Error: template instance filter!(IsOdd) filter!(IsOdd) does not match template declaration filter(alias pred) if (is(typeof(unaryFun!(pred)))) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
