Function aliasing problem
Steven Schveighoffer
schveiguy at gmail.com
Tue Apr 21 22:13:31 UTC 2020
On 4/21/20 5:24 PM, Jean-Louis Leroy wrote:
> I would like to combine them all, e.g.:
>
> alias sst(T) = SS!T.f;
> int d = sst(42); // <=> SS!int.f(42)
>
> But it fails like this:
>
> aliasstaticfunction.d(23): Error: template
> `aliasstaticfunction.sst` cannot deduce function from argument types
> `!()(int)`, candidates are:
> aliasstaticfunction.d(22): `sst(T)`
Implicit *Function* Template Instantiation (IFTI) only works on
functions, not types. You are asking the compiler to deduce the template
parameter of the struct from its inner function being called.
This is similar to constructors on templated types. D just doesn't do
that currently.
You need a forwarder.
-Steve
More information about the Digitalmars-d-learn
mailing list