IFTI in Eponymous Templates
jmh530 via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Jun 29 11:59:19 PDT 2016
I was playing around with some Eponymous Templates. I had been
under the impression that Implicit Function-Template
Instantiation (IFTI) meant that you don't have to explicitly
instantiate all functions. However, it seems like there are cases
with eponymous templates with functions in them that you do. For
instance, in the bar function below, I have to explicitly
instantiate the inner function template.
template foo(T, U)
{
T foo(T x, U y)
{
return x + cast(T)y;
}
}
template bar(T)
{
T bar(U)(T x, U y)
{
return x + cast(T)y;
}
}
void main()
{
int a = 1;
long b = 2;
auto x = foo(a, a);
//auto y = bar(a, b); //error
auto y = bar!(long)(a, b);
}
More information about the Digitalmars-d-learn
mailing list