Unexpected type names with template typedefs
Simen Kjaeraas
simen.kjaras at gmail.com
Mon Apr 28 17:24:13 PDT 2008
struct foo(T)
{
T value;
}
template bar(T)
{
typedef foo!(T) bar;
}
void main(string[] args)
{
writefln((bar!(int)).stringof); // prints 'bar'
writefln((bar!(float)).stringof); // prints 'bar'
writefln((bar!(bar!(int))).stringof); // prints 'bar'
writefln((foo!(int)).stringof); // prints 'foo!(int)'
writefln((foo!(float)).stringof); // prints 'foo!(float)'
writefln((foo!(foo!(int))).stringof); // prints 'foo!(foo!(int))'
}
Should not the output of the first three be 'bar!(int)', 'bar!(float)',
and 'bar!(bar!(int))'?
-- Simen
More information about the Digitalmars-d-learn
mailing list