这是一个例子:
int[] arr = [ 1, 2, 3, 4, 5 ];
auto foo = filter!("a < 3")(arr);
assert(foo == [ 1, 2 ]); // works fine
现在我希望能够参数化谓词,例如
int max = 3;
int[] arr = [ 1, 2, 3, 4, 5 ];
auto foo = filter!("a < max")(arr); // doesn't compile
这个片段显然不会编译,正弦过滤器!()的谓词只接受一个参数。有没有办法克服这个限制而不诉诸良好的 for/foreach 循环?