erichkeane wrote:

> > Is kinda wrong, it should be in the instantiation of that function...
> 
> @erichkeane I don’t quite understand: the CWG issue itself requires us to 
> check the constraint before substituting into the function during template 
> argument deduction. So it shouldn’t live in a specialization because we don’t 
> really have one. This situation feels more like a chicken-and-egg problem.
> 
> GCC doesn’t encounter this issue because it doesn’t need to support the MSVC 
> ABI. The problem only arises with the MSVC ABI because it requires parent 
> mangling when instantiating the lambda body.

Actually, I perhaps misread the example (I think I inserted extra curleys 
there).  It isn't clear to me why we are mangling the name of the lambda.  It 
isn't in a context where it should be emitted?  Corentin might be right about 
the starting an unevaluated context.

It also isn't clear to me why compare_three_way_result_t is being instantiated 
with a lambda in it, but the example is one that perhaps needs more 
contemplating.


https://github.com/llvm/llvm-project/pull/102857
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to