Function template as template parameter

Ali Çehreli acehreli at yahoo.com
Sun Dec 11 16:24:30 UTC 2022


On 12/11/22 05:54, Salih Dincer wrote:
 > On Sunday, 11 December 2022 at 09:43:34 UTC, Andrey Zherikov wrote:
 >> Note that callback parameter must be compile-time parameter as it
 >> represents a member of a type during introspection done by `foo`.
 >
 > I can't quite understand the question, this already works:

I think the OP is trying to create an anonymous template. I don't think 
it's possible.

The following works because the template has the name 'print':

// Named template:
static void print(int i)() {
     import std;
     writeln(i);
}

void main() {
     foo!print;
}

The following does not work when one attempts to use the template 
anonymously. Just trying to pass a template just like a lambda:

     foo!((int i)() {
             import std;
             writeln(i);
         });

Note how '(int i)()' is hoping to define a template.

Ali



More information about the Digitalmars-d-learn mailing list