mizvekov wrote:

> Can we have a more in depth explanation for why this fixes the problem? It is 
> a bit too late for the commit summary but maybe a comment above `Scope` would 
> be helpful. A comment in the PR would be nice but it will force folks to go 
> an extra step if future people want to do any archeology into this change.

Pack expansions can appear within another pack expansion, things like:
```C++
template<typename ...T> int f1(X<T, T...>... a);
```
are possible to write in C++.

This requires a little bit of extra magic on top of what we normally have to do 
for deducing non-packs, we save the deduction for the inner expansion and use 
it to restart deduction for the outer expansion.

The way we have implemented to save this, we use the LocalInstantiationScope as 
a stack to make sure we don't confuse deductions between different entities as 
nested pack expansions instead.

https://github.com/llvm/llvm-project/pull/183219
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to