[clang] [Sema] Substitute parameter packs when deduced from function arguments (PR #79371)

Gábor Spaits via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 26 06:48:57 PST 2024


================
@@ -858,6 +859,27 @@ class PackDeductionScope {
       Info.PendingDeducedPacks[Pack.Index] = Pack.Outer;
   }
 
+  // Return the size of the saved packs if all of them has the same size.
+  std::optional<unsigned> getSavedPackSizeIfAllEqual() const {
+    if (Packs.size() == 0 ||
+        Packs[0].Saved.getKind() != clang::TemplateArgument::Pack)
----------------
spaits wrote:

The reason I added them is because I wanted to be careful. What if someone constructs a `PackDeductionScope` with a non pack `TemplateArgument`.

Should I replace them with insertions?

https://github.com/llvm/llvm-project/pull/79371


More information about the cfe-commits mailing list