------- Additional Comments From reichelt at gcc dot gnu dot org 2005-06-24 15:30 ------- Your line should read:
typename SAX::basic_XMLReader<stringT>::template Property<SAX::basic_DeclHandler<stringT> *>* prop; If one fixes all four occurances in your file, the code compiles fine. With your version SAX::basic_XMLReader<stringT>::Property<typename SAX::basic_DeclHandler<stringT> *>* prop; "SAX::basic_XMLReader<stringT>::Property" is not a type, and therefore "<" is the operator "less_than" which is followed by a type (followed by some more stuff, but the compiler already crashed). An even shorter testcase is the following: =========================================== namespace N { template<int> struct A {}; } template<typename> void foo() { +typename N::A<0>; } =========================================== -- What |Removed |Added ---------------------------------------------------------------------------- CC| |reichelt at gcc dot gnu dot | |org Keywords| |monitored Known to fail|4.0.0 4.1.0 |3.4.0 3.4.4 4.0.0 4.1.0 Known to work|3.4.0 3.4.4 |3.3 3.3.6 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22172