On Tuesday, 11 April 2017 at 02:01:19 UTC, Nicholas Wilson wrote:
On Monday, 10 April 2017 at 21:27:34 UTC, Basile B. wrote:
2) This is about the reduce templates. As I've commented, I
can't use a template lambda with reduce, but I can use a
lambda taking ints as arguments. Why is this? The error
message I get when using the template lambda is:
"template instance reduce!((a, b) => a + b) cannot use local
'__lambda1' as parameter to non-global template reduce(alias
fun)()"
No idea for this.
The use of the global identity template will fix this:
see
https://blog.thecybershadow.net/2015/04/28/the-amazing-template-that-does-nothing/
Thanks, that did work. I think I understand the point about UFCS
lookup rules, but it still seems strange (it was at least
surprising) that I couldn't use the template (a, b) => a + b in
place of (int a, int b) => a + b.