mizvekov added a comment.

In D133683#3818935 <https://reviews.llvm.org/D133683#3818935>, @ychen wrote:

> This is described in https://eel.is/c++draft/temp.deduct.partial#13. Parietal 
> ordering currently doesn't consider the number of deduced arguments. During 
> the partial ordering stage, by https://eel.is/c++draft/temp.func.order#3, 
> `template <typename T, typename... U> void g(T, U...);` would become `void 
> g(UniqueT1, UniqueT2);`. And then it applies 
> https://eel.is/c++draft/temp.deduct.partial#3.1 to decide which parameters 
> are compared for partial ordering.

Sure, one thing is, given that we deduced a pack, does the number of elements 
deduced for that pack matter in partial ordering. I think 
`temp.deduct.partial#13` answers that it doesn't.

The other thing is, is a given template parameter pack used, or deduced, as 
opposed to just not being used. and I think the answer here is yes for that 
second overload of `g`.

If a template parameter pack appears as a type of a function parameter in an 
expansion pattern, such as `void g(T, U...);`, then I think that, notionally, 
there is no way to not use it.

For any call to that overload, that parameter pack will be deduced, no matter 
if to an empty pack or otherwise.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D133683/new/

https://reviews.llvm.org/D133683

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to