下面是一個例子:std.algorithm.filter!()模板有兩個參數而不是一個?
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
這段代碼不會明顯編譯,正弦過濾器!()的謂詞只接受一個參數。有沒有辦法克服這種限制,而不訴諸良好的醇/ foreach循環?
我編輯您的帖子,但在代表仍在工作。你應該修改你的第二個例子的評論。 – 2010-10-05 16:41:23
@he_the_great:其實都編譯。這一評論來自我從OP複製/粘貼並忘記刪除該評論。雖然現在修復了。 – dsimcha 2010-10-05 16:51:38