Two patches attached. The reqs-parsing patch adds parsing support for template requirements (i.e., requires clauses). This is supported for all template declarations and non-template member functions of class templates. Grammar changes are documented in comments. Semantic processing of constraints is stubbed out for the time being.
The flags patch just enables -fconcepts by default. The combined change log is: 2013-03-01 Andrew Sutton <andrew.n.sut...@gmail.com> * cp-tree.h (saved_scope): Add template requirements. (finish_template_requirements): Declare * parser.c (cp_parser_template_requirement_opt): Declare. (cp_parser_template_declaration): Document grammar extensions. (cp_parser_type_parameter): Parse requirements for template template parameters. (cp_parser_member_declaration): Parse requirements for members of class templates. (cp_parser_template_requirement_opt): Define. (cp_parser_template_declaration_after_exp): Parse requirements for template declarations. * semantics.c (finish_template_requirements): Define. * lex.c (cxx_init): Enable concepts by default.
flags.patch
Description: Binary data
reqs-parsing.patch
Description: Binary data