[PATCH] D128750: [C++20] Implement P2113R0: Changes to the Partial Ordering of Constrained Functions

Yuanfang Chen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Aug 12 15:08:47 PDT 2022


ychen added a comment.

In D128750#3680607 <https://reviews.llvm.org/D128750#3680607>, @royjacobson wrote:

> In D128750#3663161 <https://reviews.llvm.org/D128750#3663161>, @ychen wrote:
>
>> In D128750#3662898 <https://reviews.llvm.org/D128750#3662898>, @royjacobson wrote:
>>
>>> but in your example with T/U/V we have 3 template parameters that we could reorder in 6 different ways.
>>
>> But, any reordering of the 6 that does not have consecutive U and V  is not valid. Because in the other template, T/U is consecutive and used by X<T, U> in that order. I don't think it is allowed to change the template parameter references in the function parameters.
>
> Sorry for taking the time to answer!
> I'm still not sure why it wouldn't be allowed to change template parameter freely. The standard just says 'reordering of the associated template-parameter-list'. I understand it to mean any permutation of them until they match the order of the other function's template parameters (which doesn't even to be the candidate that generated this reversed candidate). I don't understand why U,V must be consecutive - might be I'm missing something, but all forms seem to be valid templates? https://godbolt.org/z/E8Y3Ez3TY
>
> Also, in case it was understood otherwise - I still think this is reasonable and I don't think we should wait until someone gets an answer from CWG  - my request for changes is because I want to see better tests coverage.

Thanks for the feedback! I've updated the patch description to reflect the current status of the patch. PTAL.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D128750



More information about the cfe-commits mailing list