UFCS call and regular call behaves differently with alias parameter
Jacob Carlborg
doob at me.com
Sun Jun 17 09:14:52 PDT 2012
The following code shows that depending on how a function is called,
UFCS or regular syntax, the type of T is inferred differently. If I
remove the alias parameter the code behaves as expected.
string foo (alias p, T) (T t)
{
return typeof(t).stringof;
}
void main ()
{
string[string] aa;
auto x = foo!(3 > 4)(aa);
auto y = aa.foo!(3 > 4);
assert(x == y);
writeln("x=", x);
writeln("y=", y);
}
In the above code the assert is triggered. If I remove the assert the
code prints:
x=string[string]
y=AssociativeArray!(string,string)
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list