zyn0217 wrote:

I see the problem here:

When substituting into the constraint __is_derived_from_optional with [_Tp = 
__sfinae_assign_base] prior to substituting the three-way operator, we must 
also substitute into the lambda call expression. This requires instantiating 
the lambda body to deduce its return type, and instantiating the lambda body 
necessitates mangling its parent for Microsoft mangling. In this case, the 
lambda resides within the function declaration `compare_three_way_result_t<_Tp, 
_Up> operator<=>(_Tp, _Up)`, which remains uninstantiated at this point!

@cor3ntin

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