On Tue, Sep 16, 2014 at 04:38:04PM +0000, via Digitalmars-d-learn wrote: > On Tuesday, 16 September 2014 at 16:27:46 UTC, H. S. Teoh via > Digitalmars-d-learn wrote: > >On Tue, Sep 16, 2014 at 04:19:10PM +0000, via Digitalmars-d-learn wrote: > >>The following code does not compile, because the custom predicate of > >>std.algorithm.sort is a template parameter, and therefore can only > >>be a function, but not a delegate. > > > >What makes you think so? Template parameters certainly can be > >delegates. I use that all the time. > > Well because the delegate contains a pointer to the object, which can > not be known at compile time. In fact > > >sort!(&f.cmp)(data); > > fails with the error "variable f cannot be read at compile time", > which seems reasonable to me. On the other hand > > >sort!((a,b) => f.cmp(a, b))(data); > > does in fact compile, so i guess problem is solved. Thanks guys.
Mea culpa, I confused lambdas with delegates. The two are not the same thing. That will teach me to answer emails while rushing to get ready for work. :-P Sorry for the noise. T -- There is no gravity. The earth sucks.