@@ -9280,6 +9280,14 @@ class Sema final {
9280
9280
const TemplateArgumentList &TemplateArgs,
9281
9281
sema::TemplateDeductionInfo &Info);
9282
9282
9283
+ TemplateDeductionResult
9284
+ DeduceTemplateArguments(TemplateParameterList *TemplateParams,
9285
+ ArrayRef<TemplateArgument> Ps,
9286
+ ArrayRef<TemplateArgument> As,
9287
+ sema::TemplateDeductionInfo &Info,
9288
+ SmallVectorImpl<DeducedTemplateArgument> &Deduced,
9289
+ bool NumberOfArgumentsMustMatch);
9290
+
9283
9291
TemplateDeductionResult SubstituteExplicitTemplateArguments(
9284
9292
FunctionTemplateDecl *FunctionTemplate,
9285
9293
TemplateArgumentListInfo &ExplicitTemplateArgs,
@@ -10432,9 +10440,11 @@ class Sema final {
10432
10440
SourceLocation PointOfInstantiation, FunctionDecl *Decl,
10433
10441
ArrayRef<TemplateArgument> TemplateArgs,
10434
10442
ConstraintSatisfaction &Satisfaction);
10435
- FunctionDecl *InstantiateFunctionDeclaration(FunctionTemplateDecl *FTD,
10436
- const TemplateArgumentList *Args,
10437
- SourceLocation Loc);
10443
+ FunctionDecl *InstantiateFunctionDeclaration(
10444
+ FunctionTemplateDecl *FTD, const TemplateArgumentList *Args,
10445
+ SourceLocation Loc,
10446
+ CodeSynthesisContext::SynthesisKind CSC =
10447
+ CodeSynthesisContext::ExplicitTemplateArgumentSubstitution);
10438
10448
void InstantiateFunctionDefinition(SourceLocation PointOfInstantiation,
10439
10449
FunctionDecl *Function,
10440
10450
bool Recursive = false,
0 commit comments