File tree Expand file tree Collapse file tree 4 files changed +12
-6
lines changed Expand file tree Collapse file tree 4 files changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -91,7 +91,7 @@ C++20 Feature Support
91
91
current module units.
92
92
Fixes `#84002 <https://github.com/llvm/llvm-project/issues/84002 >`_.
93
93
94
- - Initial support for class template argument deduciton (CTAD) for type alias
94
+ - Initial support for class template argument deduction (CTAD) for type alias
95
95
templates (`P1814R0 <https://wg21.link/p1814r0 >`_).
96
96
(#GH54051).
97
97
Original file line number Diff line number Diff line change @@ -2515,10 +2515,11 @@ def err_deduced_class_template_compound_type : Error<
2515
2515
"cannot %select{form pointer to|form reference to|form array of|"
2516
2516
"form function returning|use parentheses when declaring variable with}0 "
2517
2517
"deduced class template specialization type">;
2518
- def err_deduced_non_class_template_specialization_type : Error<
2518
+ def err_deduced_non_class_or_alias_template_specialization_type : Error<
2519
2519
"%select{<error>|function template|variable template|alias template|"
2520
2520
"template template parameter|concept|template}0 %1 requires template "
2521
- "arguments; argument deduction only allowed for class templates">;
2521
+ "arguments; argument deduction only allowed for class templates or alias "
2522
+ "templates">;
2522
2523
def err_deduced_class_template_ctor_ambiguous : Error<
2523
2524
"ambiguous deduction for template arguments of %0">;
2524
2525
def err_deduced_class_template_ctor_no_viable : Error<
Original file line number Diff line number Diff line change @@ -10751,9 +10751,8 @@ QualType Sema::DeduceTemplateSpecializationFromInitializer(
10751
10751
}
10752
10752
}
10753
10753
if (!Template) {
10754
- // FIXME: update the diagnostic message to include C++20 alias templates
10755
10754
Diag (Kind.getLocation (),
10756
- diag::err_deduced_non_class_template_specialization_type )
10755
+ diag::err_deduced_non_class_or_alias_template_specialization_type )
10757
10756
<< (int )getTemplateNameKindForDiagnostics (TemplateName) << TemplateName;
10758
10757
if (auto *TD = TemplateName.getAsTemplateDecl ())
10759
10758
NoteTemplateLocation (*TD);
Original file line number Diff line number Diff line change @@ -843,7 +843,13 @@ <h2 id="cxx20">C++20 implementation status</h2>
843
843
< tr >
844
844
< td > Class template argument deduction for alias templates</ td >
845
845
< td > < a href ="https://wg21.link/p1814r0 "> P1814R0</ a > </ td >
846
- < td class ="none " align ="center "> No</ td >
846
+ < td class ="partial " align ="center ">
847
+ < details >
848
+ < summary > Clang 19 (Partial)</ summary >
849
+ The associated constraints (over.match.class.deduct#3.3) for the
850
+ synthesized deduction guides are not yet implemented.
851
+ </ details >
852
+ </ td >
847
853
</ tr >
848
854
< tr >
849
855
< td > Permit conversions to arrays of unknown bound</ td >
You can’t perform that action at this time.
0 commit comments