lambdas with types
H. S. Teoh
hsteoh at quickfur.ath.cx
Fri Nov 20 15:07:09 UTC 2020
On Fri, Nov 20, 2020 at 02:52:41PM +0000, Adam D. Ruppe via Digitalmars-d-learn wrote:
> On Friday, 20 November 2020 at 14:47:52 UTC, Paul Backus wrote:
> > There is no way to create an anonymous template in D.
>
> I wish there was, maybe some day we can think of a way to add it to
> the language.
Wouldn't it be just syntactic sugar for a manually-declared helper
template? We could just adapt the syntax for anonymous classes and
combine it with the syntax for lambdas, something like this:
template(T) => ... /* compile-time expression */
So for example:
auto myFunc(Args...)(Args args)
if (allSatisfy!(template(T) => is(T : double)))
{ ... }
The template keyword is to differentiate between an actual lambda vs. a
"template lambda". Not sure if we can leave out the (), it may be
necessary to diambiguate it from a named template declaration?
Implementation-wise, it would of course just lower to an injected helper
template declaration.
T
--
It is impossible to make anything foolproof because fools are so ingenious. -- Sammy
More information about the Digitalmars-d-learn
mailing list