c++/8858: [2003-01-22] Gcc "rebinds" template member names.
Giovanni Bajo
giovannibajo@libero.it
Fri Jan 24 23:00:00 GMT 2003
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&p
r=8858
It seems like the parser is confused by the long chain, and just "ignores"
any add<> but the last one: basically, it parses any add<> like it was
list::add, instead of list::add::add. In the snippet, the first add<char> is
like "overwritten" by the second add<int>, so that the final type is
cons<int, cons<double, float> >, as the assert shows. If you just break the
chain:
typedef list<cons<double,float> >::add<char>::type temp;
typedef list<temp>::add<int>::type test_type;
everything works as expected (g++ 3.2)
Giovanni Bajo
More information about the Gcc-bugs
mailing list