Re: cannot deduce template lambda from argument

2017-12-06 Thread aliak via Digitalmars-d-learn
On Wednesday, 6 December 2017 at 11:02:01 UTC, Jonathan M Davis wrote: If you only want one type, then given n that type; I'm pretty sure that it would be alias lambda = (int n) => n * n; if you wanted an int. But if you want to do anything more complicated with it, it would make more sense

Re: cannot deduce template lambda from argument

2017-12-06 Thread Jonathan M Davis via Digitalmars-d-learn
On Wednesday, December 06, 2017 10:43:18 aliak via Digitalmars-d-learn wrote: > On Wednesday, 6 December 2017 at 08:10:26 UTC, Biotronic wrote: > > On Tuesday, 5 December 2017 at 23:01:43 UTC, aliak wrote: > >> immutable lambda(T) = (T n) => n * n; > > > > Generally, you'd want to write > > > >

Re: cannot deduce template lambda from argument

2017-12-06 Thread aliak via Digitalmars-d-learn
On Wednesday, 6 December 2017 at 08:10:26 UTC, Biotronic wrote: On Tuesday, 5 December 2017 at 23:01:43 UTC, aliak wrote: immutable lambda(T) = (T n) => n * n; Generally, you'd want to write alias lambda = n => n * n; instead. That said, I don't see any reason why your syntax shouldn't

Re: cannot deduce template lambda from argument

2017-12-06 Thread Biotronic via Digitalmars-d-learn
On Tuesday, 5 December 2017 at 23:01:43 UTC, aliak wrote: immutable lambda(T) = (T n) => n * n; Generally, you'd want to write alias lambda = n => n * n; instead. That said, I don't see any reason why your syntax shouldn't work, and would argue it's a bug. Please file it in Bugzilla.

cannot deduce template lambda from argument

2017-12-05 Thread aliak via Digitalmars-d-learn
Hi, Having a little trouble understanding lambda type deduction. I have this lambda: immutable lambda(T) = (T n) => n * n; and if I call it with an explicit type it works else it errors with: lambda cannot deduce function from argument types !()(int) auto x = lambda!int(2); // ok auto x =