Index: gcc/cp/parser.c =================================================================== RCS file: /cvsroot/gcc/gcc/gcc/cp/parser.c,v retrieving revision 1.368 diff -c -3 -p -r1.368 parser.c *** gcc/cp/parser.c 21 Oct 2005 16:03:46 -0000 1.368 --- gcc/cp/parser.c 26 Oct 2005 17:13:29 -0000 *************** cp_parser_member_declaration (cp_parser* *** 13240,13247 **** /* Check for a template-declaration. */ if (cp_lexer_next_token_is_keyword (parser->lexer, RID_TEMPLATE)) { ! /* Parse the template-declaration. */ ! cp_parser_template_declaration (parser, /*member_p=*/true); return; } --- 13240,13250 ---- /* Check for a template-declaration. */ if (cp_lexer_next_token_is_keyword (parser->lexer, RID_TEMPLATE)) { ! if (cp_lexer_peek_nth_token (parser->lexer, 2)->type == CPP_LESS ! && cp_lexer_peek_nth_token (parser->lexer, 3)->type == CPP_GREATER) ! cp_parser_explicit_specialization (parser); ! else ! cp_parser_template_declaration (parser, /*member_p=*/true); return; }