Passing anonymous templated functions as template parameters

Basile B. via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jun 15 16:52:56 PDT 2016


On Wednesday, 15 June 2016 at 22:27:38 UTC, pineapple wrote:
> Here's a simple code example to illustrate what I expected to 
> work and didn't - is this a mistake in my syntax or a 
> limitation of the language?
>
>     template SomeTemplate(alias func){
>         auto templatefunc(T)(int x){
>             return func!T(x);
>         }
>     }
>
>     // Valid
>     auto somefunc(T)(int x){
>         return cast(T) x;
>     }
>     alias fn1 = SomeTemplate!somefunc;
>
>     // Not valid
>     alias fn2 = SomeTemplate!(
>         (T)(int x){return cast(T) x;}
>     );

This syntax passes:

     alias fn2(T) = SomeTemplate!((int x){return cast(T) x;});


More information about the Digitalmars-d-learn mailing list