|
@@ -2010,8 +2010,8 @@ def err_auto_not_allowed : Error<
|
|
"%select{'auto'|'decltype(auto)'|'__auto_type'|"
|
|
"%select{'auto'|'decltype(auto)'|'__auto_type'|"
|
|
"use of "
|
|
"use of "
|
|
"%select{class template|function template|variable template|alias template|"
|
|
"%select{class template|function template|variable template|alias template|"
|
|
- "template template parameter|template}2 %3 requires template arguments; "
|
|
|
|
- "argument deduction}0 not allowed "
|
|
|
|
|
|
+ "template template parameter|concept|template}2 %3 requires template "
|
|
|
|
+ "arguments; argument deduction}0 not allowed "
|
|
"%select{in function prototype"
|
|
"%select{in function prototype"
|
|
"|in non-static struct member|in struct member"
|
|
"|in non-static struct member|in struct member"
|
|
"|in non-static union member|in union member"
|
|
"|in non-static union member|in union member"
|
|
@@ -2100,8 +2100,8 @@ def err_deduced_class_template_compound_type : Error<
|
|
"deduced class template specialization type">;
|
|
"deduced class template specialization type">;
|
|
def err_deduced_non_class_template_specialization_type : Error<
|
|
def err_deduced_non_class_template_specialization_type : Error<
|
|
"%select{<error>|function template|variable template|alias template|"
|
|
"%select{<error>|function template|variable template|alias template|"
|
|
- "template template parameter|template}0 %1 requires template arguments; "
|
|
|
|
- "argument deduction only allowed for class templates">;
|
|
|
|
|
|
+ "template template parameter|concept|template}0 %1 requires template "
|
|
|
|
+ "arguments; argument deduction only allowed for class templates">;
|
|
def err_deduced_class_template_ctor_ambiguous : Error<
|
|
def err_deduced_class_template_ctor_ambiguous : Error<
|
|
"ambiguous deduction for template arguments of %0">;
|
|
"ambiguous deduction for template arguments of %0">;
|
|
def err_deduced_class_template_ctor_no_viable : Error<
|
|
def err_deduced_class_template_ctor_no_viable : Error<
|
|
@@ -2128,7 +2128,7 @@ def err_deduction_guide_invalid_specifier : Error<
|
|
def err_deduction_guide_name_not_class_template : Error<
|
|
def err_deduction_guide_name_not_class_template : Error<
|
|
"cannot specify deduction guide for "
|
|
"cannot specify deduction guide for "
|
|
"%select{<error>|function template|variable template|alias template|"
|
|
"%select{<error>|function template|variable template|alias template|"
|
|
- "template template parameter|dependent template name}0 %1">;
|
|
|
|
|
|
+ "template template parameter|concept|dependent template name}0 %1">;
|
|
def err_deduction_guide_wrong_scope : Error<
|
|
def err_deduction_guide_wrong_scope : Error<
|
|
"deduction guide must be declared in the same scope as template %q0">;
|
|
"deduction guide must be declared in the same scope as template %q0">;
|
|
def err_deduction_guide_defines_function : Error<
|
|
def err_deduction_guide_defines_function : Error<
|
|
@@ -2456,32 +2456,20 @@ def warn_private_extern : Warning<
|
|
def note_private_extern : Note<
|
|
def note_private_extern : Note<
|
|
"use __attribute__((visibility(\"hidden\"))) attribute instead">;
|
|
"use __attribute__((visibility(\"hidden\"))) attribute instead">;
|
|
|
|
|
|
-// C++ Concepts TS
|
|
|
|
-def err_concept_wrong_decl_kind : Error<
|
|
|
|
- "'concept' can only appear on the definition of a function template or variable template">;
|
|
|
|
-def err_concept_decls_may_only_appear_in_namespace_scope : Error<
|
|
|
|
- "concept declarations may only appear in namespace scope">;
|
|
|
|
-def err_function_concept_not_defined : Error<
|
|
|
|
- "function concept declaration must be a definition">;
|
|
|
|
-def err_var_concept_not_initialized : Error<
|
|
|
|
- "variable concept declaration must be initialized">;
|
|
|
|
-def err_function_concept_exception_spec : Error<
|
|
|
|
- "function concept cannot have exception specification">;
|
|
|
|
-def err_concept_decl_invalid_specifiers : Error<
|
|
|
|
- "%select{variable|function}0 concept cannot be declared "
|
|
|
|
- "'%select{thread_local|inline|friend|constexpr}1'">;
|
|
|
|
-def err_function_concept_with_params : Error<
|
|
|
|
- "function concept cannot have any parameters">;
|
|
|
|
-def err_function_concept_bool_ret : Error<
|
|
|
|
- "declared return type of function concept must be 'bool'">;
|
|
|
|
-def err_variable_concept_bool_decl : Error<
|
|
|
|
- "declared type of variable concept must be 'bool'">;
|
|
|
|
-def err_concept_specified_specialization : Error<
|
|
|
|
- "'concept' cannot be applied on an "
|
|
|
|
- "%select{explicit instantiation|explicit specialization|partial specialization}0">;
|
|
|
|
-def err_concept_specialized : Error<
|
|
|
|
- "%select{function|variable}0 concept cannot be "
|
|
|
|
- "%select{explicitly instantiated|explicitly specialized|partially specialized}1">;
|
|
|
|
|
|
+// C++ Concepts
|
|
|
|
+def err_concept_initialized_with_non_bool_type : Error<
|
|
|
|
+ "constraint expression must be of type 'bool' but is of type %0">;
|
|
|
|
+def err_concept_decls_may_only_appear_in_global_namespace_scope : Error<
|
|
|
|
+ "concept declarations may only appear in global or namespace scope">;
|
|
|
|
+def err_concept_no_parameters : Error<
|
|
|
|
+ "concept template parameter list must have at least one parameter; explicit "
|
|
|
|
+ "specialization of concepts is not allowed">;
|
|
|
|
+def err_concept_extra_headers : Error<
|
|
|
|
+ "extraneous template parameter list in concept definition">;
|
|
|
|
+def err_concept_no_associated_constraints : Error<
|
|
|
|
+ "concept cannot have associated constraints">;
|
|
|
|
+def err_concept_not_implemented : Error<
|
|
|
|
+ "sorry, unimplemented concepts feature %0 used">;
|
|
|
|
|
|
def err_template_different_associated_constraints : Error<
|
|
def err_template_different_associated_constraints : Error<
|
|
"associated constraints differ in template redeclaration">;
|
|
"associated constraints differ in template redeclaration">;
|
|
@@ -4019,11 +4007,12 @@ def ext_adl_only_template_id : ExtWarn<
|
|
def err_template_missing_args : Error<
|
|
def err_template_missing_args : Error<
|
|
"use of "
|
|
"use of "
|
|
"%select{class template|function template|variable template|alias template|"
|
|
"%select{class template|function template|variable template|alias template|"
|
|
- "template template parameter|template}0 %1 requires template arguments">;
|
|
|
|
|
|
+ "template template parameter|concept|template}0 %1 requires template "
|
|
|
|
+ "arguments">;
|
|
def err_template_arg_list_different_arity : Error<
|
|
def err_template_arg_list_different_arity : Error<
|
|
"%select{too few|too many}0 template arguments for "
|
|
"%select{too few|too many}0 template arguments for "
|
|
"%select{class template|function template|variable template|alias template|"
|
|
"%select{class template|function template|variable template|alias template|"
|
|
- "template template parameter|template}1 %2">;
|
|
|
|
|
|
+ "template template parameter|concept|template}1 %2">;
|
|
def note_template_decl_here : Note<"template is declared here">;
|
|
def note_template_decl_here : Note<"template is declared here">;
|
|
def err_template_arg_must_be_type : Error<
|
|
def err_template_arg_must_be_type : Error<
|
|
"template argument for template type parameter must be a type">;
|
|
"template argument for template type parameter must be a type">;
|