[clang] [Sema] Substitute parameter packs when deduced from function arguments (PR #79371)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Jan 26 06:27:11 PST 2024
================
@@ -4371,6 +4394,34 @@ Sema::TemplateDeductionResult Sema::DeduceTemplateArguments(
// corresponding argument is a list?
PackScope.nextPackElement();
}
+ } else if (!IsTrailingPack && !PackScope.isPartiallyExpanded() &&
+ PackScope.isDeducedFromEarlierParameter()) {
+ // [temp.deduct.general#3]
+ // When all template arguments have been deduced
+ // or obtained from default template arguments, all uses of template
+ // parameters in the template parameter list of the template are
+ // replaced with the corresponding deduced or default argument values
+ //
+ // If we have a trailing parameter pack, that has been deduced
+ // previously we substitute the pack here in a similar fashion as
+ // above with the trailing parameter packs. The main difference here is
+ // that, in this case we are not processing all of the remaining
+ // arguments. We are only process as many arguments as much we have in
----------------
cor3ntin wrote:
```suggestion
// arguments. We are only process as many arguments as we have in
```
https://github.com/llvm/llvm-project/pull/79371
More information about the cfe-commits
mailing list