On Tuesday, 13 October 2015 at 13:57:15 UTC, Meta wrote:
On Tuesday, 13 October 2015 at 13:18:36 UTC, Kagamin wrote:
Well, in order to pass the result of a function call to a
template parameter means that the function must be evaluated
at compile time, which is not always possible, so it probably
doesn't make sense to call a function when passed as a
template argument.
You'd be surprised what DMD thinks is a function call and what
isn't.
What doesn't work for you?
extern int f();
struct T(F){}
T!f t; //Error: template instance T!(f) does not match template
declaration T(F)
struct A(alias F){}
A!f a; //works