Currently clang-trunk crashes on the following:
auto L = [](auto ... v) { }; L.operator()<int>(3);
The reason is that the partially-substituted-pack is incorrectly retained within the current-instantiation-scope
during template-argument-finalization, and because lambda's are local, there parent instantiation
scopes are merged, which leads to the expansion-pattern being retained in the finalized specialization.
This patch ensures that once we have finalized deduction of a parameter-pack, we remove the partially-substituted-pack
so that it doesn't cause CheckParameterPacksForExpansion to incorrectly inform the caller that it needs to retain the expansion pattern.
Thanks!
You don't need to pass these unused pointer args. Just:
... should do the trick.