@@ -560,13 +560,14 @@ class Sema final : public SemaBase {
560
560
// 23. Statement Attribute Handling (SemaStmtAttr.cpp)
561
561
// 24. C++ Templates (SemaTemplate.cpp)
562
562
// 25. C++ Template Argument Deduction (SemaTemplateDeduction.cpp)
563
- // 26. C++ Template Instantiation (SemaTemplateInstantiate.cpp)
564
- // 27. C++ Template Declaration Instantiation
563
+ // 26. C++ Template Deduction Guide (SemaTemplateDeductionGuide.cpp)
564
+ // 27. C++ Template Instantiation (SemaTemplateInstantiate.cpp)
565
+ // 28. C++ Template Declaration Instantiation
565
566
// (SemaTemplateInstantiateDecl.cpp)
566
- // 28 . C++ Variadic Templates (SemaTemplateVariadic.cpp)
567
- // 29 . Constraints and Concepts (SemaConcept.cpp)
568
- // 30 . Types (SemaType.cpp)
569
- // 31 . FixIt Helpers (SemaFixItUtils.cpp)
567
+ // 29 . C++ Variadic Templates (SemaTemplateVariadic.cpp)
568
+ // 30 . Constraints and Concepts (SemaConcept.cpp)
569
+ // 31 . Types (SemaType.cpp)
570
+ // 32 . FixIt Helpers (SemaFixItUtils.cpp)
570
571
571
572
/// \name Semantic Analysis
572
573
/// Implementations are in Sema.cpp
@@ -11347,6 +11348,10 @@ class Sema final : public SemaBase {
11347
11348
bool &IsMemberSpecialization, bool &Invalid,
11348
11349
bool SuppressDiagnostic = false);
11349
11350
11351
+ /// Returns the template parameter list with all default template argument
11352
+ /// information.
11353
+ TemplateParameterList *GetTemplateParameterList(TemplateDecl *TD);
11354
+
11350
11355
DeclResult CheckClassTemplate(
11351
11356
Scope *S, unsigned TagSpec, TagUseKind TUK, SourceLocation KWLoc,
11352
11357
CXXScopeSpec &SS, IdentifierInfo *Name, SourceLocation NameLoc,
@@ -12009,15 +12014,6 @@ class Sema final : public SemaBase {
12009
12014
unsigned TemplateDepth,
12010
12015
const Expr *Constraint);
12011
12016
12012
- /// Declare implicit deduction guides for a class template if we've
12013
- /// not already done so.
12014
- void DeclareImplicitDeductionGuides(TemplateDecl *Template,
12015
- SourceLocation Loc);
12016
-
12017
- FunctionTemplateDecl *DeclareAggregateDeductionGuideFromInitList(
12018
- TemplateDecl *Template, MutableArrayRef<QualType> ParamTypes,
12019
- SourceLocation Loc);
12020
-
12021
12017
/// Find the failed Boolean condition within a given Boolean
12022
12018
/// constant expression, and describe it with a string.
12023
12019
std::pair<Expr *, std::string> findFailedBooleanCondition(Expr *Cond);
@@ -12570,6 +12566,27 @@ class Sema final : public SemaBase {
12570
12566
//
12571
12567
//
12572
12568
12569
+ /// \name C++ Template Deduction Guide
12570
+ /// Implementations are in SemaTemplateDeductionGuide.cpp
12571
+ ///@{
12572
+
12573
+ /// Declare implicit deduction guides for a class template if we've
12574
+ /// not already done so.
12575
+ void DeclareImplicitDeductionGuides(TemplateDecl *Template,
12576
+ SourceLocation Loc);
12577
+
12578
+ FunctionTemplateDecl *DeclareAggregateDeductionGuideFromInitList(
12579
+ TemplateDecl *Template, MutableArrayRef<QualType> ParamTypes,
12580
+ SourceLocation Loc);
12581
+
12582
+ ///@}
12583
+
12584
+ //
12585
+ //
12586
+ // -------------------------------------------------------------------------
12587
+ //
12588
+ //
12589
+
12573
12590
/// \name C++ Template Instantiation
12574
12591
/// Implementations are in SemaTemplateInstantiate.cpp
12575
12592
///@{
0 commit comments