Commit f869f407 by Jason Merrill Committed by Jason Merrill

Don't require 'bool' in a concept definition.

	* parser.c (cp_parser_decl_specifier_seq): Support C++20
	concept-definition syntax without 'bool'.

From-SVN: r269692
parent aa9cedb4
2019-03-14 Jason Merrill <jason@redhat.com>
* parser.c (cp_parser_decl_specifier_seq): Support C++20
concept-definition syntax without 'bool'.
2019-03-14 Jakub Jelinek <jakub@redhat.com>
PR c++/89512
......
......@@ -13964,6 +13964,15 @@ cp_parser_decl_specifier_seq (cp_parser* parser,
case RID_CONCEPT:
ds = ds_concept;
cp_lexer_consume_token (parser->lexer);
/* In C++20 a concept definition is just 'concept name = expr;'
Support that syntax by pretending we've seen 'bool'. */
if (cp_lexer_next_token_is (parser->lexer, CPP_NAME)
&& cp_lexer_nth_token_is (parser->lexer, 2, CPP_EQ))
{
cp_parser_set_decl_spec_type (decl_specs, boolean_type_node,
token, /*type_definition*/false);
decl_specs->any_type_specifiers_p = true;
}
break;
/* function-specifier:
// { dg-do compile { target c++14 } }
// { dg-additional-options -fconcepts }
template <class T> concept True = true;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment