private import std.range;
void filter(R)(R, bool delegate(ElementType!R)) { }
void main() { [1, 2, 3].filter(delegate bool(x) { return x < 3; }); }
This tells me the type 'R' isn't defined, so it's a bug.
More generally, getting delegates to work with templates is *too* painful.
It may not look terribly 'severe' at first glance, but it makes lambdas pretty useless -- especially when /everything/ is inferred (e.g. if I had said x => x).
Comment #1 by robert.schadek — 2024-12-13T17:59:42Z